前言
这次并没有感到很难,也许是因为视频中老师带着一步一步走,所以在探索的过程中就把困难给忽略了。并且在过程中,遇到错误了,自己会想着先调试调试,看看能不能自己解决出来。再对照代码。每一次成长都会带来喜悦。
游戏
在老师的解析中,这个游戏是有两大难点的。
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时间到!
哇!我赢啦!貌似只要动动代码,耍个赖,我就能一直赢下去~
有没有很帅呢?
后记
海阔凭鱼跃,天高任鸟飞~