C#之飞行棋大战

前言

这次并没有感到很难,也许是因为视频中老师带着一步一步走,所以在探索的过程中就把困难给忽略了。并且在过程中,遇到错误了,自己会想着先调试调试,看看能不能自己解决出来。再对照代码。每一次成长都会带来喜悦。

游戏

在老师的解析中,这个游戏是有两大难点的。
1. 画图
2. 行走逻辑
也就是画图布局游戏双方大战的过程。
首先看一下游戏头的设置。

游戏头

列入代码:

*  static void Main(string[] args)
    {
        showUI();
        Console.ReadKey();
    }
    public static void showUI()
    {
        Console.WriteLine("***************************");
        Console.WriteLine("*                         *");
        Console.WriteLine("*      终极骑士飞行棋     *");
        Console.WriteLine("*                         *");
        Console.WriteLine("***************************");

游戏头

画图

看以下模型。有三行两列。我们要对每一行没一列写入代码。在哪里换行,在哪里空出来。
三行

两列三行

第一行:

*  public static void DrawMap()
    {
        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
        }//end for

第一竖行:
由于writeline与write而出的错误:没有换行,所以在第一行一直画下去。

错误的

正确的代码:

正确的

颜色文字


看了以上的图,都发现它所有的图标都是白色的。那么我们如何给图标添加颜色让它更美观呢?

颜色

我们点开始对战的时候,是不是应该给我们个提示?所以这里要添加一些文字。

文字

大战

图画好了,准备工序做完了,下面就该AB两家对战了,那么怎么让他们行走呢?
输入对战人的姓名:

姓名

那么代码是怎样呢?这里有麻烦和简单两种写法:
麻烦的:

*  InitMap();
        do
        {
            Console.WriteLine("请输入玩家A的姓名");
            PlayerNames[0] = Console.ReadLine();
            if (PlayerNames[0] == "")
            {
                Console.Write("玩家A的姓名不能为空,");
            }

简单的:没有if语句

*       Console.WriteLine("请输入玩家A的姓名");
        PlayerNames[0] = Console.ReadLine();
        while (PlayerNames[0] == "")
        {
            Console.WriteLine("玩家A的姓名不能为空,请重新输入");
            PlayerNames[0] = Console.ReadLine();
        }

一般游戏开始的时候,就不会显示输错名字这种数据了。都是直接出游戏即可。但是上面的图片并没有直接出游戏。而是有一堆输错姓名的提示。那么我们怎么才能一进入到游戏就直接看见游戏头和图,而不是烦人的文字呢?
这里用到了clear:

游戏

成果展示:

看以下我敲的飞行棋吧!PK时间到!

我赢了


哇!我赢啦!貌似只要动动代码,耍个赖,我就能一直赢下去~
有没有很帅呢?

后记

海阔凭鱼跃,天高任鸟飞~

猜你喜欢

转载自blog.csdn.net/carrie_q/article/details/80209833