翼度科技»论坛 编程开发 .net 查看内容

C# 实现刘谦春晚魔术

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
  1.     internal class Program
  2.     {
  3.         static List<string> list=new List<string>() { "A","B","C","D","A","B","C","D" };
  4.         static string hiddenEle1 = string.Empty;//第一次藏起来的牌
  5.         static void Main(string[] args)
  6.         {
  7.             Console.WriteLine($"初始牌组:{string.Join(',',list)}");
  8.             //第一趴 名字有几个字
  9.             Console.WriteLine("请输入你的名字有几个字");
  10.             var nameCount = Convert.ToInt32(Console.ReadLine());
  11.             Fun1(nameCount);
  12.             Console.WriteLine($"变化之后:{string.Join(',', list)}");
  13.             //第二趴 拿掉三张牌
  14.             Fun2(3);
  15.             Console.WriteLine($"插入三张牌后:{string.Join(',', list)}");
  16.             //第三趴 把最上面一张牌藏起来
  17.             Fun3();
  18.             Console.WriteLine($"藏起来第一张牌后:{string.Join(',', list)}");
  19.             //第四趴南方人北方人
  20.             Console.WriteLine("北方-1 南方-2 不南不北-3,请输入对应数字");
  21.             var directCount=Convert.ToInt32(Console.ReadLine());
  22.             Fun2(directCount);
  23.             Console.WriteLine($"南北方人后:{string.Join(',', list)}");
  24.             //第五趴 男女生
  25.             Console.WriteLine("男-1 女-2,请输入对应数字");
  26.             var sexCount = Convert.ToInt32(Console.ReadLine());
  27.             Fun4(sexCount);
  28.             Console.WriteLine($"男女生后:{string.Join(',', list)}");
  29.             //第六趴 见证奇迹的时刻
  30.             Fun5();
  31.             Console.WriteLine($"见证奇迹后:{string.Join(',', list)}");
  32.             //第七趴 好运留下来烦恼丢出去
  33.             Console.WriteLine("开始好运留下了 烦恼丢出去");
  34.             var hiddenEle2 = Fun6(sexCount);
  35.             Console.WriteLine($"牌1:{hiddenEle1} 牌2:{hiddenEle2}");
  36.         }
  37.         private static void Fun1(int nameCount)
  38.         {
  39.             if (nameCount >= list.Count)
  40.             {
  41.                 // 如果 nameCount 大于或等于列表长度,则不需要进行操作
  42.                 return;
  43.             }
  44.             for (int i = 0; i < nameCount; i++)
  45.             {
  46.                 string element = list[0];  // 获取第0个元素
  47.                 list.RemoveAt(0);          // 移除第0个元素
  48.                 list.Add(element);         // 将第0个元素添加到最后
  49.             }
  50.         }
  51.         private static void Fun2(int forCount)
  52.         {
  53.             //被删除掉的三张牌
  54.             var removeElement = new List<string>();
  55.             for (int i = 0; i < forCount; i++)
  56.             {
  57.                 removeElement.Add(list[0]);
  58.                 list.RemoveAt(0);
  59.             }
  60.             //把拿到的三张牌插到中间
  61.             var random = new Random();
  62.             int insertIndex = random.Next(1, list.Count - 1); // 生成一个介于第一个和倒数第二个位置之间的随机插入位置
  63.             for (int i = removeElement.Count - 1; i >= 0; i--)
  64.             {
  65.                 list.Insert(insertIndex, removeElement[i]);
  66.             }
  67.         }
  68.         private static void Fun3()
  69.         {
  70.             //把第一张牌藏起来
  71.             hiddenEle1 = list[0];
  72.             list.RemoveAt(0);
  73.         }
  74.         private static void Fun4(int count)
  75.         {
  76.             for (int i = 0; i < count; i++)
  77.             {
  78.                 list.RemoveAt(0);
  79.             }
  80.         }
  81.         private static void Fun5()
  82.         {
  83.             for (int i = 0; i < 7; i++)
  84.             {
  85.                 string element = list[0];
  86.                 list.RemoveAt(0);
  87.                 list.Add(element);
  88.             }
  89.         }
  90.         private static string Fun6(int sexCount)
  91.         {
  92.             int forCount = 0;
  93.             if (sexCount == 1) forCount = 5;//男生要5次
  94.             else forCount = 4;
  95.             for (int i = 0; i < forCount; i++)
  96.             {
  97.                 // 把第一张牌放到数组最后面 (好运留下来)
  98.                 string element = list[0];
  99.                 list.RemoveAt(0);
  100.                 list.Add(element);
  101.                 //烦恼丢出去
  102.                 list.RemoveAt(0);
  103.             }
  104.             return list[0];
  105.         }
  106.     }
复制代码
来源:https://www.cnblogs.com/cyfj/p/18017196
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具