基于C# 实现刘谦春晚魔术(示例代码)

 更新时间:2024年02月17日 09:39:50   作者:柴油飞机  
刘谦春晚魔术是一个让人叹为观止的魔术表演,其中涉及到了数学、编程和创意的结合,看了春晚魔术的朋友们,是不是好奇春晚刘谦的魔术是怎么变的,本文分享C# 实现刘谦春晚魔术示例代码,一起看看吧

刘谦春晚魔术是一个让人叹为观止的魔术表演,其中涉及到了数学、编程和创意的结合。看了春晚魔术的朋友们,是不是好奇春晚刘谦的魔术是怎么变的。

下面分享基于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];
        }
    }

到此这篇关于基于C# 实现刘谦春晚魔术(示例代码)的文章就介绍到这了,更多相关C# 刘谦春晚魔术内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

最新评论