C# 实现刘谦春晚魔术

  • C# 实现刘谦春晚魔术已关闭评论
  • 70 次浏览
  • A+
所属分类:.NET技术
    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];         }     }