有你更快乐 发表于 2024-2-16 17:40:26

C# 实现刘谦春晚魔术

    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个元素
                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);
                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);
            }
      }
      private static void Fun3()
      {
            //把第一张牌藏起来
            hiddenEle1 = list;
            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;
                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;
                list.RemoveAt(0);
                list.Add(element);

                //烦恼丢出去
                list.RemoveAt(0);
            }
            return list;
      }
    }
来源:https://www.cnblogs.com/cyfj/p/18017196
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: C# 实现刘谦春晚魔术