C#之飞行棋

新的资料看了几个文件夹之后,越发的有一种从易到难难度逐渐加深的感觉,不过飞行棋之后,挺有一种大门突然打开的感觉,对编写程序的方法也好像有了一点点的理解。就想尝试着把那个小程序编出来。当然不参考源代码是不可能的。那我现在就写一下飞行棋这个游戏编写的思路吧。

   游戏的规则是:随机的投骰子,投到几就走几步,如果走到幸运轮盘,用户可以选择方案,如果踩到地雷,用户回退6个格,如果走到暂停就暂停让对方走,如果走到时空隧道,就前进10个格。如此如果谁先走到最后一个格,便是胜利者。

   按照老师讲的来思考,首先应该了解游戏规则,知道游戏怎么玩的才能去设计一个程序实现它,因此编程的第一步就是熟悉功能。首先应该显示游戏头,然后初始化地图,把地图画出来。

        public static void ShowUI()
        {
            Console.WriteLine("***************************");
            Console.WriteLine("*                            *");
            Console.WriteLine("*  终极骑士飞行棋  版本:10.28 *");
            Console.WriteLine("*                            *");
            Console.WriteLine("******************************");
        }
 public static void InitMap()
        {
            //初始化地图
            //我用0表示普通,显示给用户就是 □
            //....1...幸运轮盘,显示组用户就 ◎
            //....2...地雷,显示给用户就是 ☆
            //....3...暂停,显示给用户就是 ▲
            //....4...时空隧道,显示组用户就 卐
            int[] luckyturn = { 6, 23, 40, 55, 69, 83 };//幸运轮盘◎
            int[] landMine = { 5, 13, 17, 33, 38, 50, 64, 80, 94 };//地雷☆
            int[] pause = { 9, 27, 60, 93 };//暂停▲
            int[] timeTunnel = { 20, 25, 45, 63, 72, 88, 90 };//时空隧道卐
            //把数组中下标为6, 23, 40, 55, 69, 83的地方的值改为1
            for (int i = 0; i < luckyturn.Length; i++)
            {
                //int temp = luckyturn[i];
                Map[luckyturn[i]] = 1;
            }
            for (int i = 0; i < landMine.Length; i++)
            {
                Map[landMine[i]] = 2;
            }

            for (int i = 0; i < pause.Length; i++)
            {
                Map[pause[i]] = 3;
            }
            for (int i = 0; i < timeTunnel.Length; i++)
            {
                Map[timeTunnel[i]] = 4;
            }



这也是这个游戏的难点,第一行的图案画出来,紧接着是第一竖行,然后是第二横行,然后是第二竖行,第三横行。我们就先来看一下第一行的逻辑吧;

            for (int i = 0; i <= 29; i++)
            {
                if (PlayerPos[0] == PlayerPos[1] && PlayerPos[0] == i)
                {
                    Console.Write("<>"); ;
                }
                else if (PlayerPos[0] == i)
                {
                    Console.Write("A");
                }
                else if (PlayerPos[1] == i)
                {
                    Console.Write("B");
                }
                else
                {
                    switch (Map[i])
                    {
                        case 0: Console.Write("□"); break;
                        case 1: Console.Write("◎"); break;
                        case 2: Console.Write("☆"); break;
                        case 3: Console.Write("▲"); break;
                        case 4: Console.Write("卐"); break;
                    }//end switch
                }//end else

然后根据第一行的逻辑来编辑第一竖行,和第二竖行。

    这是飞行棋的难点之一。再一个就是飞行棋实现的逻辑了。边看视频边理解,一定会有更大的收获。最后把要做的功能都做出来然后加上自己的理解,一定会做出一个完美的飞行棋!


你可能感兴趣的:(C#之飞行棋)