今天学习了相应的视频后,仿造写了一个飞行棋。

首先,飞行棋要具有以下基本功能。

输入两个玩家的名字,代表玩家A和玩家B。A和B互相掷骰子,根据掷的点数进行行动,相应的行动在棋盘要实时体现出来,棋盘上有幸运轮盘,地雷,时空隧道,暂停等几个图标,当走到相应的图标时,执行不同的选择。

幸运轮盘:可以选择轰炸对方(退6格)或者交换位置

地雷:后退十格

暂停:三回合不能掷骰子

时空隧道:前进十格

当任意一方先到一百格的时候,即为获胜。

代码可以大概的分为两个部分,第一个部分是界面及用户和地图的绘制。

代码如下:

static int[] playerpost = { 0, 0 };//初始化玩家位置,playerpost【0】存玩家A的位置,【1】存B的位置
        static int[] num = new int[100];//数组内的一百个元素代表100个棋盘的格
        static void Main(string[] args)
        {

            UI.showUI();//调用绘制界面的方法
            string[] name = new string[2];//建立一个存储玩家名字的数组
            Console.WriteLine("请输入玩家A的名字");//请玩家输入名字
            name[0] = Console.ReadLine();
            while (name[0] == "")
            {
                Console.WriteLine("玩家A的名字不能为空?");//如果输入为空,就提示不能为空
                name[0] = Console.ReadLine();//把玩家的输入赋给name【0】
            }
            Console.WriteLine("请输入玩家B的名字");//让玩家B也输入名字
            name[1] = Console.ReadLine();
            while (name[1] == "" || name[1] == name[0])
            {
                if (name[1] == "")
                {
                    Console.WriteLine("玩家B的名字不能为空?");//如果输入为空或者和玩家A一样 那就提示重新输入
                    
                }
                else
                {
                    Console.WriteLine("玩家A和玩家B的名字不能重复");
                }
                name[1] = Console.ReadLine();
            }
            Console.Clear();
            UI.showUI();
            Console.WriteLine("对战开始。。。。。");
            Console.WriteLine("玩家{0}用A来表示", name[0]);//清屏,绘制界面并给用户游戏提示
            Console.WriteLine("玩家{0}用B来表示", name[1]);
            Console.WriteLine("如果当前A和B的位置重合,那么用<>来表示");
            huitu();
            drowmap();
            Console.WriteLine();
            Console.WriteLine("游戏开始");

            while (playerpost[0] < 99 && playerpost[1] < 99)//玩家A掷骰子
            {
                //玩家A掷骰子
                #region

                Console.WriteLine();
                Console.WriteLine("{0}按任意键掷骰子", name[0]);
                Console.ReadKey(true);
                int b = Class1.shaizi();


                Console.WriteLine("{0}掷出了{1}点", name[0], b);
                Console.WriteLine("按任意键行动");
                Console.ReadKey(true);
                playerpost[0] += b;
                Console.WriteLine();

                if (playerpost[0] == playerpost[1])
                {
                    Console.WriteLine("{0}踩到玩家{1}了,{2}退回起点", name[0], name[1], name[1]);
                    playerpost[1] = 0;
                    Console.Clear();
                    drowmap();
                }
                else
                {
                    switch (num[playerpost[0]])
                    {
                        case 0:
                            break;
                        case 1:
                            Console.Clear();
                            drowmap();
                            Console.WriteLine("你走到了幸运轮盘");
                            Console.WriteLine("请选择1---交换位置,2---轰炸对方");
                            string ss = Console.ReadLine();
                            if (ss == "1")
                            {
                                int f = playerpost[0];
                                playerpost[0] = playerpost[1];
                                playerpost[1] = f;
                            }
                            if (ss == "2")
                            {
                                playerpost[1] = playerpost[1] - 10;
                            }
                            checks();

                            //幸运轮盘
                            break;
                        case 2:
                            Console.Clear();
                            drowmap();
                            Console.WriteLine("你踩到了地雷后退6步");
                            playerpost[0] = playerpost[0] - 6;
                            checks();
                            //地雷
                            break;
                        case 3:
                            //暂停
                            break;
                        case 4:
                            Console.Clear();
                            drowmap();
                            Console.WriteLine("你走到了时空隧道,真爽啊,进十个格");
                            playerpost[0] = playerpost[0] + 10;
                            //时空隧道
                            break;
                    }


                    Console.Clear();
                    drowmap();
                    Console.WriteLine();
                    Console.WriteLine("{0}掷出了{1}", name[0], b);
                    Console.WriteLine("{0}当前位置是{1},{2}当前位置是{3}", name[0], playerpost[0], name[1], playerpost[1]);

                #endregion
                    //玩家B掷骰子
                    if (playerpost[0] >= 99)
                    {
                        break;
                    }
                    #region
                    //判断显示A的点数并且判断A是不是踩到B
                    Console.WriteLine();
                    Console.WriteLine("{0}按任意键掷骰子", name[1]);
                    Console.ReadKey(true);
                    int a = Class1.shaizi();
                    playerpost[1] += a;
                    Console.WriteLine("{0}掷出了{1}点", name[1], a);
                    Console.WriteLine();
                    drowmap();
                    if (playerpost[1] == playerpost[0])
                    {
                        Console.WriteLine("{0}踩到玩家{1}了,{2}退回起点", name[1], name[0], name[0]);
                        playerpost[0] = 0;
                    }
                    else
                    {
                        switch (num[playerpost[1]])
                        {
                            case 0:
                                break;
                            case 1:
                                Console.Clear();
                                drowmap();
                                Console.WriteLine("你走到了幸运轮盘");
                                Console.WriteLine("请选择1---交换位置,2---轰炸对方");
                                string ss = Console.ReadLine();
                                if (ss == "1")
                                {
                                    int f = playerpost[1];
                                    playerpost[1] = playerpost[0];
                                    playerpost[0] = f;
                                }
                                if (ss == "2")
                                {
                                    playerpost[0] = playerpost[0] - 10;
                                }
                                checks();

                                //幸运轮盘
                                break;
                            case 2:
                                Console.Clear();
                                drowmap();
                                Console.WriteLine("你踩到了地雷后退6步");
                                playerpost[1] = playerpost[1] - 6;
                                checks();
                                //地雷
                                break;
                            case 3:
                                //暂停
                                break;
                            case 4:
                                Console.Clear();
                                drowmap();
                                Console.WriteLine("你走到了时空隧道,真爽啊,进十个格");
                                playerpost[1] = playerpost[1] + 10;
                                //时空隧道
                                break;
                        }


                        Console.Clear();
                        drowmap();
                        Console.WriteLine("{0}掷出了{1}", name[1], b);
                        Console.WriteLine("{0}当前位置是{1},{2}当前位置是{3}", name[0], playerpost[0], name[1], playerpost[1]);

                    #endregion
                    }
                   







                }
                
            }
            Console.Clear();
            drowmap();
            if (playerpost[0] >= 99)//判断是否胜利
            {
                Console.WriteLine("{0}胜利了,游戏结束", name[0]);
            }
            else
            {
                Console.WriteLine("{0}胜利了,游戏结束", name[1]);
            }

            Console.ReadKey();
        }