• 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];  // 获取第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];
            }
        }
    
  • 相关阅读:
    java工程师常用的java框架Shiro
    ApiPost接口测试工具
    你好,面试官 | 终于上岸了,你会哪些 JVM 调优参数?呆住了。。。
    Leetcode链表问题汇总
    WPFdatagrid结合comboBox
    对比接口测试工具在自动化测试优缺点:Jmeter、Python、Postman
    java计算机毕业设计网络教学系统源码+系统+数据库+lw文档
    来可LCWLAN-600P产品使用和常见问题说明
    利用Python进行数据分析【送书第六期:文末送书】
    基于花授粉优化的BP神经网络(分类应用) - 附代码
  • 原文地址:https://www.cnblogs.com/cyfj/p/18017196