C#飞行棋总结
程序员文章站
2022-07-09 15:07:58
方法名参数返回值功能ShowUI无无显示游戏表头InitMap无无将放置障碍的位置用数字列出,然后将显示同一种障碍位置的数组进行在赋值,1(为一种障碍),2(为一种障碍),3(为一种障碍)等等DrawMap无无画地图(横行,竖行)DrawStringMapint pos......
方法名 | 参数 | 返回值 | 功能 |
ShowUI | 无 | 无 | 显示游戏表头 |
InitMap | 无 | 无 | 将放置障碍的位置用数字列出,然后将显示同一种障碍位置的数组进行在赋值,1(为一种障碍),2(为一种障碍),3(为一种障碍)等等 |
DrawMap | 无 | 无 | 画地图(横行,竖行) |
DrawStringMap | int pos | string | 画障碍和玩家A和玩家B的不同情况(包含颜色) |
DrawMapLeftToRigh | int left,int right | 无 | 画横行的代码 |
ReadInt | string msg,int min,int max | int | 踩到幸运轮盘进行选择 |
RowTouZi | int playerPos | 无 | 掷色子,根据不同的情况采取不同的措施 |
CheckPos | 无 | 无 | 每一次变动位置都要判断是否出界 |
逻辑图
以下是掷色子的一个代码,比较有代表性,里面的逻辑和内容都已注释,可通过注释了解这一方法的运作模式。
public static void RowTouZi(int playerPos) //掷色子
{
//产生随机数,掷色子的随机数
Random r = new Random();
int num = r.Next(1, 7);
//定义一个字符串变量
string msg = "";
//提示用户信息
Console.WriteLine("{0}按任意键开始掷色子", PlayerNames[playerPos]);
//不显示用户按下的任意键
Console.ReadKey(true);
//根据不同的变量的值显示不同的情况
Console.WriteLine("{0}掷出了{1}", PlayerNames[playerPos], num);
//提示用户谁开始行动了
Console.WriteLine("{0}按任意键开始行动...", PlayerNames[playerPos]);
Console.ReadKey(true);
//用户的坐标开始改变
PlayerPos[playerPos] += num;
//判断两个用户坐标可能出现的问题(重叠的问题)
if (PlayerPos[playerPos] == PlayerPos[1- playerPos])
{
msg=string.Format("玩家{0}踩到了玩家{1},玩家{2}退6格", PlayerNames[playerPos], PlayerNames[1- playerPos], PlayerNames[1 - playerPos]);
PlayerPos[1- playerPos] -= 6;
}
else
{
//检查是否出界
CheckPos();
switch (Map[PlayerPos[playerPos]])
{
//没有障碍
case 0:
msg ="行动完了";
break;
//踩到幸运轮盘
case 1:
msg = string.Format("{0}走到了幸运轮盘,请选择1--交换位置,2---轰炸对方", PlayerNames[playerPos]);
//进行选择,调用Readint方法,只可以让用户输入1或2;
int number = ReadInt(msg, 1, 2);
//进行判断用户选择的哪个方案,进行执行相应的代码
if (number == 1)
{
//交换位置
int temp = 0;
temp = PlayerPos[playerPos];
temp = PlayerPos[playerPos];
PlayerPos[playerPos] = PlayerPos[1- playerPos];
PlayerPos[1- playerPos] = temp;
msg=string.Format("玩家{0}选择了玩家{1}交换位置", PlayerNames[playerPos], PlayerNames[1- playerPos]);
}
else
{
PlayerPos[1- playerPos] = 0;
msg = string.Format("玩家{0}选择了轰炸玩家{1}", PlayerNames[playerPos], PlayerNames[1- playerPos]);
}
break;
//踩到地雷了
case 2:
msg="踩到地雷了,后退6步";
//坐标后退6
PlayerPos[playerPos] -= 6;
//检查是否出界
CheckPos();
break;
//踩到暂停了
case 3:
msg ="踩到暂停了";
//将flag数组中的false,改为true,执行true相应的代码
flag[playerPos] = true;
break;
//踩到了时空隧道
case 4:
msg = string.Format("恭喜你,踩到时空隧道,前进10步");
//坐标前进10
PlayerPos[playerPos] += 10;
//判断是否出界
CheckPos();
break;
}
}
Console.Clear(); //清除掉原来的地图
DrawMap(); //在画一边地图
//因为只有一种情况出现,所以msg的值经过判断之后也是只有一种,然后将其内容显示出来
Console.WriteLine(msg);
}
小知识总结:
可以通过判断,显示内容
case 0:
msg=string.Format("玩家{0}踩到了玩家{1},玩家{2}退6格", PlayerNames[playerPos], PlayerNames[1- playerPos], PlayerNames[1 - playerPos]);
case 1:
msg = string.Format("{0}走到了幸运轮盘,请选择1--交换位置,2---轰炸对方", PlayerNames[playerPos]);
Console.WriteLine(msg);
本文地址:https://blog.csdn.net/lclcsdnblink/article/details/85944136