---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
这是一个简单的小游戏——骑士飞行棋的实现方法。本游戏由两名玩家对战。运用的是C#的基础知识,是对基础知识的一个总结。下面是本游戏的效果图:
先上本游戏实现方法的代码:
namespace 骑士飞行棋
{
/// <summary>
/// 玩家类
/// </summary>
class Player
{
public string name; //玩家姓名
public int position; //玩家当前所处位置
public int statue; //玩家当前所处的状态,即当前玩家是否可以投掷骰子,1表示可以,0表示不可以
public bool isPause; //指示玩家是否暂停
}
/// <summary>
/// 飞行棋类(本游戏限两人对战)
/// </summary>
class FlyingCheese
{
int[] Map = new int[100]; //表示地图
public Player playerA = new Player(); //A玩家
public Player playerB = new Player(); //B玩家
Random random = new Random(); //掷骰子的随机数对象
Player winner; //胜利的玩家
//下面是用于存储地图中特殊位置的下标
int[] LuckyTurn;//幸运转盘
int[] Landmine;//地雷
int[] Pause;//暂停
int[] TimeTunnel;//时空隧道
/// <summary>
/// 程序输出的开头,用于显示游戏的名称(由于要重复输出,因此形成一个单独的方法)
/// </summary>
public void ShowGame()
{
Console.WriteLine("********************************************************");
Console.WriteLine("* * * * * *");
Console.WriteLine("************** 骑 士 飞 行 棋 **************");
Console.WriteLine("* * * * * *");
Console.WriteLine("********************************************************");
}
/// <summary>
/// 初始化有关地图的数据
/// </summary>
public void InitialMap()
{
LuckyTurn = new int[] { 6, 23, 40, 55, 69, 83 };//幸运转盘
Landmine = new int[] { 5, 13, 17, 33, 38, 50, 64, 80, 94 };//地雷
Pause = new int[] { 9, 27, 60, 93 };//暂停
TimeTunnel = new int[] { 20, 25, 45, 63, 72, 88, 90 };//时空隧道
for (int i = 0; i < LuckyTurn.Length; i++) //幸运转盘在Map中用1表示
{
Map[LuckyTurn[i]] = 1;
}
for (int i = 0; i < Landmine.Length; i++) //地雷在Map中用2表示
{
Map[Landmine[i]] = 2;
}
for (int i = 0; i < Pause.Length; i++) //暂停在Map中用3表示
{
Map[Pause[i]] = 3;
}
for (int i = 0; i < TimeTunnel.Length; i++) //时光隧道在Map中用4表示
{
Map[TimeTunnel[i]] = 4;
}
}
/// <summary>
/// 画地图(要分成五个部分来画)
/// 我们总共画100个位置,其中横三行分别为30个位置,竖二行分别为5个位置
/// </summary>
public void DrawMap()
{
//在正式画地图之前,如果玩家的位置下标小于0,就让他的下标为0
if (playerA.position < 0)
{
playerA.position = 0;
}
if (playerB.position < 0)
{
playerB.position = 0;
}
//在正式画地图之前,如果玩家的位置下标大于99,就让他的下标为99
if (playerA.position > 99)
{
playerA.position = 99;
}
if (playerB.position > 99)
{