骑士飞行棋游戏
来源:互联网 发布:mysql 默认 编辑:程序博客网 时间:2024/04/20 10:11
namespace QiShiFeiXingQi
{
class Program
{
static string[] name=new string[2]; //定义数组接受两个人的名字
static int[] Map = new int[130];//定义地图每格的元素
static int[] Coordinate = { 0,0 };//定义坐标的位置
static Random rd = new Random();//产生随即数
static bool isNo = false;
static void Main(string[] args)
{
ShowUI();
#region 玩家输入姓名
Console.WriteLine("请输入玩家A的姓名:");
name[0] = Console.ReadLine();
while (name[0] == "")
{
Console.WriteLine("你的姓名不能为空,请重新输入:");
name[0] = Console.ReadLine();
}
Console.WriteLine("请输入玩家B的名字:");
name[1]=Console.ReadLine();
while (name[1] == "" || name[1] == name[0])
{
if (name[1] == "")
{
Console.WriteLine("玩家B的名字也不能为空,请重新输入吧:");
}
else
{
Console.WriteLine("两个人的名字一样了,请重新输入:");
}
name[1] = Console.ReadLine();
}
#endregion
Console.WriteLine("{0}是玩家A",name[0]);
Console.WriteLine("{0}的玩家B",name[1]);
InitalMap();
DrawMap();
Console.WriteLine("游戏对战开始...");
while (Coordinate[0] < 130 && Coordinate[1] < 130)
{
int temp = rd.Next(1, 7);
if (isNo == false)
{
#region A掷筛子
Console.WriteLine("{0}按任意键开始掷筛子:", name[0]);
Console.ReadKey(true);
temp = rd.Next(1, 7);
Console.WriteLine("{0}掷出了个:{1}", name[0], temp);
Console.WriteLine("按任意键开始行动......");
Console.ReadKey(true);
Coordinate[0] = Coordinate[0] + temp;
CheckNum();
if (Coordinate[0] == Coordinate[1])
{
Coordinate[1] = 0;
}
else
{
switch (Map[Coordinate[0]])
{
case 0:
//普通
break;
case 1:
//1------交换位置--------------2------轰炸对方--------
Console.WriteLine("请输入1-交换位置---------------2-轰炸对方");
int enter = Number(1, 2);
if (enter == 1)
{
int s = Coordinate[0];
Coordinate[0] = Coordinate[1];
Coordinate[1] = s;
}
else
{
Coordinate[1] = Coordinate[1] - 6;
CheckNum();
}
break;
case 2:
Coordinate[0] = Coordinate[0] - 6;
CheckNum();
//倒退六格
break;
case 3:
//站停一次
isNo = true;
break;
case 4:
Coordinate[0] = Coordinate[0] + 10;
CheckNum();
//前进10格
break;
default:
break;
}
}
Console.Clear();
ShowUI();
InitalMap();
DrawMap();
#endregion
}
else
{
isNo = false;
}
if (isNo == false)
{
#region B掷筛子
Console.WriteLine("{0}按任意键开始掷筛子:", name[1]);
Console.ReadKey(true);
temp = rd.Next(1, 7);
Console.WriteLine("{0}掷出了个:{1}", name[1], temp);
Console.WriteLine("按任意键开始行动......");
Console.ReadKey(true);
temp = rd.Next(1, 7);
Coordinate[1] = Coordinate[1] + temp;
CheckNum();
if (Coordinate[1] == Coordinate[0])
{
Coordinate[0] = 0;
}
else
{
switch (Map[Coordinate[1]])
{
case 0:
break;
case 1:
Console.WriteLine("请输入1-交换位置---------------2-轰炸对方");
int enter = Number(1, 2);
if (enter == 1)
{
int s = Coordinate[1];
Coordinate[1] = Coordinate[0];
Coordinate[0] = s;
}
else
{
Coordinate[0] = Coordinate[0] - 6;
CheckNum();
}
break;
case 2:
Coordinate[1] = Coordinate[1] - 6;
CheckNum();
break;
case 3:
isNo = true;
break;
case 4:
Coordinate[1] = Coordinate[1] + 10;
CheckNum();
break;
default:
break;
}
}
Console.Clear();
ShowUI();
InitalMap();
DrawMap();
#endregion
}
else
{
isNo = false;
}
}
Console.ReadKey();
}
/// <summary>
/// 欢迎界面的方法
/// </summary>
static void ShowUI()
{
Console.Write("********************************************************************************");
Console.Write("* *");
Console.Write("* 杨 玉 杰 的 飞 行 骑 游 戏 *");
Console.Write("* *");
Console.Write("********************************************************************************");
Console.WriteLine("图例:◎表示幸运轮盘 ¤表示炸弹 ▲站停一次 ★时空隧道");
}
/// <summary>
/// 轮盘初始化
/// </summary>
static void InitalMap()
{
int[] luckyTrun = { 6, 26, 47, 88, 91,110 };
int[] landMine = { 5, 24, 33, 49, 53, 73, 89, 95,111 };
int[] stop = { 9, 20, 38, 49, 55, 68, 74,112 };
int[] timeTunnel = { 7, 25, 33, 69, 88,113 };
for (int i = 0; i < luckyTrun.Length; i++)
{
Map[luckyTrun[i]] = 1;
}
for (int i = 0; i < landMine.Length; i++)
{
Map[landMine[i]] = 2;
}
for (int i = 0; i < stop.Length; i++)
{
Map[stop[i]] = 3;
}
for (int i = 0; i < timeTunnel.Length; i++)
{
Map[timeTunnel[i]] = 4;
}
}
/// <summary>
/// 绘制每一格
/// </summary>
static string DrowingMap(int post)
{
string result = "";
if (Coordinate[0] == post && Coordinate[1] == post)
{
result = "<>";
}
else if (Coordinate[0] == post)
{
result = "A";
}
else if (Coordinate[1] == post)
{
result = "B";
}
else
{
switch (Map[post])
{
case 0: result = "□";
break;
case 1: result = "◎";
break;
case 2: result = "¤";
break;
case 3: result = "▲";
break;
case 4: result = "★";
break;
default:
break;
}
}
return result;
}
/// <summary>
/// 绘制每一行
/// </summary>
static void DrawMap()
{
for (int i = 0; i < 40; i++)
{
Console.Write(DrowingMap(i));
}
for (int i = 40; i < 45; i++)
{
for (int j = 0; j < 39; j++)
{
Console.Write(" ");
}
Console.Write(DrowingMap(i));
}
for (int i = 84; i >= 45; i--)
{
Console.Write(DrowingMap(i));
}
for (int i = 85; i < 90; i++)
{
Console.WriteLine(DrowingMap(i));
}
for (int i = 90; i < 130; i++)
{
Console.Write(DrowingMap(i));
}
}
/// <summary>
/// 玩家A和玩家B掷筛子
/// </summary>
static void Dice()
{
}
/// <summary>
/// 检查玩家A和玩家B的数字是否超出了范围
/// </summary>
static void CheckNum()
{
for(int i=0;i<2;i++)
{
if (Coordinate[i] >= 130)
{
Coordinate[i] = 129;
}
if (Coordinate[i] < 0)
{
Coordinate[i] = 0;
}
}
}
/// <summary>
/// 只能输入min和max之间的数字
/// </summary>
/// <param name="min"></param>
/// <param name="max"></param>
/// <returns></returns>
static int Number(int min, int max)
{
while (true)
{
try
{
int numbers = Convert.ToInt32(Console.ReadLine());
if (numbers < min || numbers > max)
{
Console.WriteLine("只能输入{0}到{1}之间的数字,请重新输入!",min,max);
continue;
}
return numbers;
}
catch
{
Console.WriteLine("只能输入数字,请重新输入!");
}
}
}
}
}
{
class Program
{
static string[] name=new string[2]; //定义数组接受两个人的名字
static int[] Map = new int[130];//定义地图每格的元素
static int[] Coordinate = { 0,0 };//定义坐标的位置
static Random rd = new Random();//产生随即数
static bool isNo = false;
static void Main(string[] args)
{
ShowUI();
#region 玩家输入姓名
Console.WriteLine("请输入玩家A的姓名:");
name[0] = Console.ReadLine();
while (name[0] == "")
{
Console.WriteLine("你的姓名不能为空,请重新输入:");
name[0] = Console.ReadLine();
}
Console.WriteLine("请输入玩家B的名字:");
name[1]=Console.ReadLine();
while (name[1] == "" || name[1] == name[0])
{
if (name[1] == "")
{
Console.WriteLine("玩家B的名字也不能为空,请重新输入吧:");
}
else
{
Console.WriteLine("两个人的名字一样了,请重新输入:");
}
name[1] = Console.ReadLine();
}
#endregion
Console.WriteLine("{0}是玩家A",name[0]);
Console.WriteLine("{0}的玩家B",name[1]);
InitalMap();
DrawMap();
Console.WriteLine("游戏对战开始...");
while (Coordinate[0] < 130 && Coordinate[1] < 130)
{
int temp = rd.Next(1, 7);
if (isNo == false)
{
#region A掷筛子
Console.WriteLine("{0}按任意键开始掷筛子:", name[0]);
Console.ReadKey(true);
temp = rd.Next(1, 7);
Console.WriteLine("{0}掷出了个:{1}", name[0], temp);
Console.WriteLine("按任意键开始行动......");
Console.ReadKey(true);
Coordinate[0] = Coordinate[0] + temp;
CheckNum();
if (Coordinate[0] == Coordinate[1])
{
Coordinate[1] = 0;
}
else
{
switch (Map[Coordinate[0]])
{
case 0:
//普通
break;
case 1:
//1------交换位置--------------2------轰炸对方--------
Console.WriteLine("请输入1-交换位置---------------2-轰炸对方");
int enter = Number(1, 2);
if (enter == 1)
{
int s = Coordinate[0];
Coordinate[0] = Coordinate[1];
Coordinate[1] = s;
}
else
{
Coordinate[1] = Coordinate[1] - 6;
CheckNum();
}
break;
case 2:
Coordinate[0] = Coordinate[0] - 6;
CheckNum();
//倒退六格
break;
case 3:
//站停一次
isNo = true;
break;
case 4:
Coordinate[0] = Coordinate[0] + 10;
CheckNum();
//前进10格
break;
default:
break;
}
}
Console.Clear();
ShowUI();
InitalMap();
DrawMap();
#endregion
}
else
{
isNo = false;
}
if (isNo == false)
{
#region B掷筛子
Console.WriteLine("{0}按任意键开始掷筛子:", name[1]);
Console.ReadKey(true);
temp = rd.Next(1, 7);
Console.WriteLine("{0}掷出了个:{1}", name[1], temp);
Console.WriteLine("按任意键开始行动......");
Console.ReadKey(true);
temp = rd.Next(1, 7);
Coordinate[1] = Coordinate[1] + temp;
CheckNum();
if (Coordinate[1] == Coordinate[0])
{
Coordinate[0] = 0;
}
else
{
switch (Map[Coordinate[1]])
{
case 0:
break;
case 1:
Console.WriteLine("请输入1-交换位置---------------2-轰炸对方");
int enter = Number(1, 2);
if (enter == 1)
{
int s = Coordinate[1];
Coordinate[1] = Coordinate[0];
Coordinate[0] = s;
}
else
{
Coordinate[0] = Coordinate[0] - 6;
CheckNum();
}
break;
case 2:
Coordinate[1] = Coordinate[1] - 6;
CheckNum();
break;
case 3:
isNo = true;
break;
case 4:
Coordinate[1] = Coordinate[1] + 10;
CheckNum();
break;
default:
break;
}
}
Console.Clear();
ShowUI();
InitalMap();
DrawMap();
#endregion
}
else
{
isNo = false;
}
}
Console.ReadKey();
}
/// <summary>
/// 欢迎界面的方法
/// </summary>
static void ShowUI()
{
Console.Write("********************************************************************************");
Console.Write("* *");
Console.Write("* 杨 玉 杰 的 飞 行 骑 游 戏 *");
Console.Write("* *");
Console.Write("********************************************************************************");
Console.WriteLine("图例:◎表示幸运轮盘 ¤表示炸弹 ▲站停一次 ★时空隧道");
}
/// <summary>
/// 轮盘初始化
/// </summary>
static void InitalMap()
{
int[] luckyTrun = { 6, 26, 47, 88, 91,110 };
int[] landMine = { 5, 24, 33, 49, 53, 73, 89, 95,111 };
int[] stop = { 9, 20, 38, 49, 55, 68, 74,112 };
int[] timeTunnel = { 7, 25, 33, 69, 88,113 };
for (int i = 0; i < luckyTrun.Length; i++)
{
Map[luckyTrun[i]] = 1;
}
for (int i = 0; i < landMine.Length; i++)
{
Map[landMine[i]] = 2;
}
for (int i = 0; i < stop.Length; i++)
{
Map[stop[i]] = 3;
}
for (int i = 0; i < timeTunnel.Length; i++)
{
Map[timeTunnel[i]] = 4;
}
}
/// <summary>
/// 绘制每一格
/// </summary>
static string DrowingMap(int post)
{
string result = "";
if (Coordinate[0] == post && Coordinate[1] == post)
{
result = "<>";
}
else if (Coordinate[0] == post)
{
result = "A";
}
else if (Coordinate[1] == post)
{
result = "B";
}
else
{
switch (Map[post])
{
case 0: result = "□";
break;
case 1: result = "◎";
break;
case 2: result = "¤";
break;
case 3: result = "▲";
break;
case 4: result = "★";
break;
default:
break;
}
}
return result;
}
/// <summary>
/// 绘制每一行
/// </summary>
static void DrawMap()
{
for (int i = 0; i < 40; i++)
{
Console.Write(DrowingMap(i));
}
for (int i = 40; i < 45; i++)
{
for (int j = 0; j < 39; j++)
{
Console.Write(" ");
}
Console.Write(DrowingMap(i));
}
for (int i = 84; i >= 45; i--)
{
Console.Write(DrowingMap(i));
}
for (int i = 85; i < 90; i++)
{
Console.WriteLine(DrowingMap(i));
}
for (int i = 90; i < 130; i++)
{
Console.Write(DrowingMap(i));
}
}
/// <summary>
/// 玩家A和玩家B掷筛子
/// </summary>
static void Dice()
{
}
/// <summary>
/// 检查玩家A和玩家B的数字是否超出了范围
/// </summary>
static void CheckNum()
{
for(int i=0;i<2;i++)
{
if (Coordinate[i] >= 130)
{
Coordinate[i] = 129;
}
if (Coordinate[i] < 0)
{
Coordinate[i] = 0;
}
}
}
/// <summary>
/// 只能输入min和max之间的数字
/// </summary>
/// <param name="min"></param>
/// <param name="max"></param>
/// <returns></returns>
static int Number(int min, int max)
{
while (true)
{
try
{
int numbers = Convert.ToInt32(Console.ReadLine());
if (numbers < min || numbers > max)
{
Console.WriteLine("只能输入{0}到{1}之间的数字,请重新输入!",min,max);
continue;
}
return numbers;
}
catch
{
Console.WriteLine("只能输入数字,请重新输入!");
}
}
}
}
}
0 0
- 骑士飞行棋游戏
- 骑士飞行棋
- 骑士飞行棋
- 骑士飞行棋
- JavaSE骑士飞行棋
- 骑士飞行棋
- 骑士飞行棋
- 骑士飞行棋
- 【C#】骑士飞行棋
- [C#]骑士飞行棋
- 黑马程序员-骑士飞行棋
- 黑马程序员-骑士飞行棋
- 骑士飞行棋经典练习
- C# 控制台 骑士飞行棋
- 黑马程序员 骑士飞行棋
- 黑马程序员-骑士飞行棋
- 黑马程序员-----------骑士飞行棋
- 骑士飞行棋项目总结
- 不用第三个变量,交换两个变量的值三种方案详解
- UVA 11401 Triangle Counting(数学)
- oracle 创建过程、函数中as, is区别
- 一步步学习微软InfoPath2010和SP2010--第一章节--介绍InfoPath2010(8)--使用模板创建表单实例
- 内部排序之堆排序
- 骑士飞行棋游戏
- new和malloc的区别
- DLL调用
- 解决doxygen绘制函数调用失败问题
- [Linux高级编程]工具&库
- c语言NULL和0区别及NULL详解
- 现有服务器oracle数据库调优
- 一步步学习微软InfoPath2010和SP2010--第一章节--介绍InfoPath2010(9)--导出模板
- 让PHP跑在Mac OS X中