首页 > 编程语言 >C# 实现刘谦春晚魔术

C# 实现刘谦春晚魔术

时间:2024-02-21 10:34:28浏览次数:16  
标签:Console string C# 刘谦 list int static WriteLine 春晚

试试看

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,请输入对应数字");
		var directCount=Convert.ToInt32(Console.ReadLine());
		Fun2(directCount);
		Console.WriteLine($"南北方人后:{string.Join(',', list)}");
		//第五趴 男女生
		Console.WriteLine("男-1 女-2,请输入对应数字");
		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); // 生成一个介于第一个和倒数第二个位置之间的随机插入位置

		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++)
		{
			// 把第一张牌放到数组最后面 (好运留下来)
			string element = list[0];
			list.RemoveAt(0);
			list.Add(element);

			//烦恼丢出去
			list.RemoveAt(0);
		}
		return list[0];
	}
}

标签:Console,string,C#,刘谦,list,int,static,WriteLine,春晚
From: https://www.cnblogs.com/lant/p/18024617

相关文章

  • Delphi 实现刘谦春晚魔术
    试试看programProject1;{$APPTYPECONSOLE}{$R*.res}usesSystem.SysUtils,System.Classes;varlist,removeElement:TStringList;i,NameCount,insertIndex,directCount,sexCount:Integer;tmp,element,hiddenEle1,hiddenEle2:String;procedur......
  • static相关
    1.代码块publicclassStaticDemo{{System.out.println("匿名代码块");}static{System.out.println("静态代码块");}publicStaticDemo(){System.out.println("构造函数");}publicstaticv......
  • Delphi 实现刘谦春晚魔术
    看了博友的C#实现刘谦春晚魔术很好,改成了delphi版的。 1programProject1;23{$APPTYPECONSOLE}4{$R*.res}56uses7System.SysUtils,8System.Classes;910var11list,removeElement:TStringList;12i,NameCount,insertI......
  • leedcode 二叉树的最小深度
    自己写的:#二叉树节点的定义classTreeNode:def__init__(self,val=0,left=None,right=None):self.val=valself.left=leftself.right=rightclassSolution:defminDepth(self,root:Optional[TreeNode])->int:#......
  • R语言中实现马尔可夫链蒙特卡罗MCMC模型
    原文链接:http://tecdat.cn/?p=2687原文出处:拓端数据部落公众号 什么是MCMC,什么时候使用它?MCMC只是一个从分布抽样的算法。这只是众多算法之一。这个术语代表“马尔可夫链蒙特卡洛”,因为它是一种使用“马尔可夫链”(我们将在后面讨论)的“蒙特卡罗”(即随机)方法。MCMC只是蒙特卡......
  • blocks——题解
    题目描述解析对于这道题,他要求大于k的数进行操作,所以直接让每个数减k,然后用前缀和维护一下与0比较就可以了,因为一段区间和的平均值大于k的话,那么这就是一个合法区间,即为操作后的这个区间和大于0,我们可以用一个单调递减栈去维护,先把比0小的推入栈中,因为要求最大区间,所以边界......
  • Apache DolphinScheduler 3.2.1 版本发布:增强功能与安全性的全面升级
    近期,ApacheDolphinScheduler社区激动地宣布3.2.1版本的发布。此次更新不仅着力解决了前一版本(3.2.0)中遗留的问题,而且引入了一系列的功能增强和优化措施。原先的问题主要源于部分重要代码在发布过程中未能成功合并(cherry-pick),加之这部分代码的合并过程较为复杂,因此,3.2.1版本......
  • scss 中公共变量的导出方法:export
    scss中公共变量的导出方法:export:https://blog.csdn.net/ww_5211314/article/details/109614511?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170848176116800180690474%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=170......
  • Go - charset and encoding
    Weshouldunderstandthedistinctionbetweenacharsetandanencoding:Acharset,asthenamesuggests,isasetofcharacters.Forexample,theUnicode charsetcontains2^21characters.Anencodingisthetranslationofacharacter’slistinbinary.F......
  • ace5 and Task Order
    这道题目很像分治,如果将下标序列\([1,n]\)以\(a_i\)为关键字排序,排序之后的逆序列就是答案我们学过的有关分治的排序方法:快速排序和归并排序。这里使用快速排序这里看官方解答就好了,写的挺清楚的然后官方解答还给了一个非随机算法,具体来说,就是先从左到右询问每个位置,如果是<,就......