基于C#?實現(xiàn)劉謙春晚魔術(shù)(示例代碼)
劉謙春晚魔術(shù)是一個讓人嘆為觀止的魔術(shù)表演,其中涉及到了數(shù)學、編程和創(chuàng)意的結(jié)合??戳舜和砟g(shù)的朋友們,是不是好奇春晚劉謙的魔術(shù)是怎么變的。
下面分享基于C# 實現(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;//第一次藏起來的牌
static void Main(string[] args)
{
Console.WriteLine($"初始牌組:{string.Join(',',list)}");
//第一趴 名字有幾個字
Console.WriteLine("請輸入你的名字有幾個字");
var nameCount = Convert.ToInt32(Console.ReadLine());
Fun1(nameCount);
Console.WriteLine($"變化之后:{string.Join(',', list)}");
//第二趴 拿掉三張牌
Fun2(3);
Console.WriteLine($"插入三張牌后:{string.Join(',', list)}");
//第三趴 把最上面一張牌藏起來
Fun3();
Console.WriteLine($"藏起來第一張牌后:{string.Join(',', list)}");
//第四趴南方人北方人
Console.WriteLine("北方-1 南方-2 不南不北-3,請輸入對應(yīng)數(shù)字");
var directCount=Convert.ToInt32(Console.ReadLine());
Fun2(directCount);
Console.WriteLine($"南北方人后:{string.Join(',', list)}");
//第五趴 男女生
Console.WriteLine("男-1 女-2,請輸入對應(yīng)數(shù)字");
var sexCount = Convert.ToInt32(Console.ReadLine());
Fun4(sexCount);
Console.WriteLine($"男女生后:{string.Join(',', list)}");
//第六趴 見證奇跡的時刻
Fun5();
Console.WriteLine($"見證奇跡后:{string.Join(',', list)}");
//第七趴 好運留下來煩惱丟出去
Console.WriteLine("開始好運留下了 煩惱丟出去");
var hiddenEle2 = Fun6(sexCount);
Console.WriteLine($"牌1:{hiddenEle1} 牌2:{hiddenEle2}");
}
private static void Fun1(int nameCount)
{
if (nameCount >= list.Count)
{
// 如果 nameCount 大于或等于列表長度,則不需要進行操作
return;
}
for (int i = 0; i < nameCount; i++)
{
string element = list[0]; // 獲取第0個元素
list.RemoveAt(0); // 移除第0個元素
list.Add(element); // 將第0個元素添加到最后
}
}
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); // 生成一個介于第一個和倒數(shù)第二個位置之間的隨機插入位置
for (int i = removeElement.Count - 1; i >= 0; i--)
{
list.Insert(insertIndex, removeElement[i]);
}
}
private static void Fun3()
{
//把第一張牌藏起來
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ù)組最后面 (好運留下來)
string element = list[0];
list.RemoveAt(0);
list.Add(element);
//煩惱丟出去
list.RemoveAt(0);
}
return list[0];
}
}到此這篇關(guān)于基于C# 實現(xiàn)劉謙春晚魔術(shù)(示例代碼)的文章就介紹到這了,更多相關(guān)C# 劉謙春晚魔術(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#調(diào)用郵箱應(yīng)用發(fā)送帶附件的郵件
這篇文章主要為大家詳細介紹了C#如何調(diào)用郵箱應(yīng)用發(fā)送帶附件的郵件,文中的示例代碼簡潔易懂,具有一定的借鑒價值,有需要的小伙伴可以參考一下2025-07-07
Treeview動態(tài)添加用戶控件傳值和取值的實例代碼
今天做了很好玩的樹,是treeview與用戶控件之間進行交互先看效果:2013-04-04
C#中神器類BlockingCollection的實現(xiàn)詳解
如果你想玩轉(zhuǎn)C#?里面多線程,工廠模式,生產(chǎn)者/消費者,隊列等高級操作,就可以和我一起探索這個強大的線程安全提供阻塞和限制功能的C#神器類BlockingCollection吧2023-02-02
無法從 int? 轉(zhuǎn)換為 int 運行時出現(xiàn)錯誤
無法從"int?"轉(zhuǎn)換為"int" ,在運行時會出現(xiàn)錯誤,通過強制類型轉(zhuǎn)換(int)便可解決2014-05-05
c# 數(shù)據(jù)標注與數(shù)據(jù)校驗
這篇文章主要介紹了c# 數(shù)據(jù)標注與數(shù)據(jù)校驗的相關(guān)資料,幫助大家更好的理解和學習c#,感興趣的朋友可以了解下2020-10-10
C#結(jié)合WPF實現(xiàn)審批流程圖繪制及后臺邏輯的示例詳解
本文將通過完整示例演示如何利用WPF的圖形渲染能力與MVVM模式,構(gòu)建一個可交互的審批流程圖系統(tǒng),并實現(xiàn)審批狀態(tài)跟蹤與業(yè)務(wù)邏輯處理,需要的朋友可以參考下2025-07-07

