飞行棋:
- 游戏规则:
First:玩家A和玩家B输入自己的游戏名称
2th:第一轮玩家A开始投掷骰子,一次轮流进行
3th:如果玩家A和B的位置重叠了:A撞了B,那么B退后6格(反之同理)
4th:游戏符号含义:
图例中的符号表示:幸运转盘○ 地雷:☆ 暂停:△ 时空隧道:√"
1、幸运转盘:玩家可以有两个选择:
那么选择1——和对方交换位置,2——轰炸对方(使对方回到原点)
2、地雷:当前玩家退后6格
3、暂停:停止掷骰子一轮
4、时空隧道:当前玩家前进10
- 代码部分:
分为:界面设置部分:行走逻辑部分。也可以按照代码界面分:声明数组部分 和定义方法部分
一、声明的数组:
1、100个坐标来画地图
public static int[] Map = new int[100];
2、两个数组来存AB玩家的名字
public static string[] PlayerNames = new string[2];
3、声明一个数组来存AB玩家的坐标
public static int[] PlayerPos = new int[2] { 0, 0 };
4、声明一个bool类型的数组,玩家踩到暂停时判断
public static bool[] flag = new bool[] { false, false };
二、定义方法:
1、飞行棋表头设计
public static void ShowUI()
2、初始化地图设计(哪个坐标表示哪个图案规则)
public static void InitMap()
3、画地图的横竖横竖横
public static void DrawMap()
4、给每一行的逻辑定义一个方法
public static string DrawStringMap(int pos)
这是画每一行都要用到的逻辑:
if (PlayerPos[0] == PlayerPos[1] && PlayerPos[0] == i)//如果坐标0和1的位置相等并且初始位置是0
{
Console.Write("<>");
}
else if (PlayerPos[0] == i)
{
Console.Write("A");
}
else if (PlayerPos[1] == i)
{
Console.Write("B");
}
else
{
switch (Map[i])//如果玩家A和玩家B不在一起也不在这个坐标上就画该显示的地图图标
{
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 if
5、第三行和第一行画的方法是一样的,定义一个方法
public static void DrawMapleftToRight(int left, int right)
6、游戏规则中“幸运转盘”选择1 或2决定对方的惩罚方法,把玩家输入的数字进行判断是否是正常值(来回传数字的过程)
public static int ReadInt(string msg, int min, int max)
7、 地图加载完成后,开始提示玩家开始投掷骰子+游戏规则(如上)定义一个方法
public static void RowTouzi(int playerPos)
8、核对坐标的方法:是否回到初始位置、是否到达最终位置判断输赢
public static void CheckPos()
9、赢了显示的内容的方法:如果到达最后的坐标那么就显示方法里的内容
public static void Win()
小结:
飞行棋的例子主要应用了Public的应用:他表示公共成员,完全公开,没有访问限制
后面还有有:Private (私有成员,在类的内部才可以访问)Protected(保护成员,在类内部和集成类中可以访问)Internal(当前程序集内可以访问)等