基于C#?實(shí)現(xiàn)劉謙春晚魔術(shù)(示例代碼)
劉謙春晚魔術(shù)是一個(gè)讓人嘆為觀止的魔術(shù)表演,其中涉及到了數(shù)學(xué)、編程和創(chuàng)意的結(jié)合??戳舜和砟g(shù)的朋友們,是不是好奇春晚劉謙的魔術(shù)是怎么變的。
下面分享基于C# 實(shí)現(xiàn)劉謙春晚魔術(shù)的示例代碼,代碼如下所示:
internal class Program { static List<string> list=new List<string>() { "A","B","C","D","A","B","C","D" }; static string hiddenEle1 = string.Empty;//第一次藏起來(lái)的牌 static void Main(string[] args) { Console.WriteLine($"初始牌組:{string.Join(',',list)}"); //第一趴 名字有幾個(gè)字 Console.WriteLine("請(qǐng)輸入你的名字有幾個(gè)字"); var nameCount = Convert.ToInt32(Console.ReadLine()); Fun1(nameCount); Console.WriteLine($"變化之后:{string.Join(',', list)}"); //第二趴 拿掉三張牌 Fun2(3); Console.WriteLine($"插入三張牌后:{string.Join(',', list)}"); //第三趴 把最上面一張牌藏起來(lái) Fun3(); Console.WriteLine($"藏起來(lái)第一張牌后:{string.Join(',', list)}"); //第四趴南方人北方人 Console.WriteLine("北方-1 南方-2 不南不北-3,請(qǐng)輸入對(duì)應(yīng)數(shù)字"); var directCount=Convert.ToInt32(Console.ReadLine()); Fun2(directCount); Console.WriteLine($"南北方人后:{string.Join(',', list)}"); //第五趴 男女生 Console.WriteLine("男-1 女-2,請(qǐng)輸入對(duì)應(yīng)數(shù)字"); var sexCount = Convert.ToInt32(Console.ReadLine()); Fun4(sexCount); Console.WriteLine($"男女生后:{string.Join(',', list)}"); //第六趴 見(jiàn)證奇跡的時(shí)刻 Fun5(); Console.WriteLine($"見(jiàn)證奇跡后:{string.Join(',', list)}"); //第七趴 好運(yùn)留下來(lái)煩惱丟出去 Console.WriteLine("開(kāi)始好運(yùn)留下了 煩惱丟出去"); var hiddenEle2 = Fun6(sexCount); Console.WriteLine($"牌1:{hiddenEle1} 牌2:{hiddenEle2}"); } private static void Fun1(int nameCount) { if (nameCount >= list.Count) { // 如果 nameCount 大于或等于列表長(zhǎng)度,則不需要進(jìn)行操作 return; } for (int i = 0; i < nameCount; i++) { string element = list[0]; // 獲取第0個(gè)元素 list.RemoveAt(0); // 移除第0個(gè)元素 list.Add(element); // 將第0個(gè)元素添加到最后 } } private static void Fun2(int forCount) { //被刪除掉的三張牌 var removeElement = new List<string>(); for (int i = 0; i < forCount; i++) { removeElement.Add(list[0]); list.RemoveAt(0); } //把拿到的三張牌插到中間 var random = new Random(); int insertIndex = random.Next(1, list.Count - 1); // 生成一個(gè)介于第一個(gè)和倒數(shù)第二個(gè)位置之間的隨機(jī)插入位置 for (int i = removeElement.Count - 1; i >= 0; i--) { list.Insert(insertIndex, removeElement[i]); } } private static void Fun3() { //把第一張牌藏起來(lái) hiddenEle1 = list[0]; list.RemoveAt(0); } private static void Fun4(int count) { for (int i = 0; i < count; i++) { list.RemoveAt(0); } } private static void Fun5() { for (int i = 0; i < 7; i++) { string element = list[0]; list.RemoveAt(0); list.Add(element); } } private static string Fun6(int sexCount) { int forCount = 0; if (sexCount == 1) forCount = 5;//男生要5次 else forCount = 4; for (int i = 0; i < forCount; i++) { // 把第一張牌放到數(shù)組最后面 (好運(yùn)留下來(lái)) string element = list[0]; list.RemoveAt(0); list.Add(element); //煩惱丟出去 list.RemoveAt(0); } return list[0]; } }
到此這篇關(guān)于基于C# 實(shí)現(xiàn)劉謙春晚魔術(shù)(示例代碼)的文章就介紹到這了,更多相關(guān)C# 劉謙春晚魔術(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Unity實(shí)現(xiàn)簡(jiǎn)單換裝系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)簡(jiǎn)單換裝系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04C#啟動(dòng)和停止windows服務(wù)的實(shí)例代碼
這篇文章介紹了C#啟動(dòng)和停止windows服務(wù)的實(shí)例代碼,有需要的朋友可以參考一下2013-09-09C# WinForm程序設(shè)計(jì)簡(jiǎn)單計(jì)算器
這篇文章主要為大家詳細(xì)介紹了C# WinForm程序設(shè)計(jì)簡(jiǎn)單計(jì)算器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02C#導(dǎo)出數(shù)據(jù)到excel如何提升性能
這篇文章主要介紹了C#導(dǎo)出數(shù)據(jù)到excel如何提升性能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07C#進(jìn)行圖像處理的常見(jiàn)方法(Bitmap,BitmapData,IntPtr)使用詳解
這篇文章主要為大家詳細(xì)介紹了C#進(jìn)行圖像處理的幾個(gè)常見(jiàn)方法(Bitmap,BitmapData,IntPtr)具體使用,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2024-01-01在web.config和app.config文件中增加自定義配置節(jié)點(diǎn)的方法
本篇文章主要是對(duì)在web.config和app.config文件中增加自定義配置節(jié)點(diǎn)的方法進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-01-01