飞行棋掷骰子的实现及判断范围的方法

要是玩家要有像真实的感觉有掷骰子的,所以要系统随机产生1-6之间的数,产生随机数的方法Random r = new Random(),还有进入每个关卡所产生的效果
/// <summary>
/// 玩家掷筛子的方法
/// </summary>
/// <param name="play">A掷骰子传0过来 B掷筛子传1过来</param>
static void Action(int play)
{ //play中存当前玩家 姓名 坐标 是否暂停 这三个数组的下标
//1-play中存对方玩家 姓名 坐标 是否暂停 这三个数组的下标
string msg="";
Console.WriteLine("{0}按任意键开始掷骰子.........", name[play]);
Random r = new Random();//产生随机数的
ConsoleKeyInfo rec= Console.ReadKey(true);
if (rec.Key == ConsoleKey.Backspace&&rec.Modifiers==(ConsoleModifiers.Control|ConsoleModifiers.Shift))//设置快捷键
{
ConsoleKeyInfo cc = Console.ReadKey();
if (cc.Key == ConsoleKey.F1)
{
step = ReadInt(1,100);
}
}
else
{
step = r.Next(1, 7);//存放随机数
}
Console.WriteLine("{0}掷出了:{1}", name[play], step);
Console.WriteLine("按任意键开始行动........");
player[play] = player[play] + step;
Check();
if (player[play] == player[1 - play])//判断两个玩家是否相遇,如果相遇了,先到被踩回起点
{
player[1 - play] = 0;//被踩回起点
msg = string.Format("玩家{0}踩到{1},玩家{1}回到起点", name[play], name[1 - play]);
}
else
{
switch (Map[player[play]])
{
//没什么特别的效果
case 0: msg = ""; break;
//走到了幸运盘关卡
case 1:
Console.Clear();
DrawMap();
Console.WriteLine("玩家{0}走到了幸运盘,请选择运气?", name[play]);
Console.WriteLine("1---交换位置 2---轰炸对方");
int userSelect = ReadInt(1, 2);
if (userSelect == 1)//判断玩家的选择
{
int temp = player[play];
player[play] = player[1 - play];
player[1 - play] = temp;
msg = string.Format("玩家{0}和玩家{1}交换位置", name[play], name[1 - play]);
}
else
{
player[1 - play] = player[1 - play] - 6;
Check();
msg = string.Format("玩家{0}被玩家{1}轰炸了,后退6格", name[1 - play], name[play]);
}
; break;
//走到地雷关卡
case 2:
player[play] = player[play] - 6;
Check();
msg = string.Format("悲剧玩家{0}踩到地雷,后退6格", name[play]);
; break;
//走到暂停关卡
case 3:
Tstop[play] = true;
msg = string.Format("{0}遇到红灯,暂停一次", name[play]);

break;
//走到时光隧道关卡
case 4:
player[play] = player[play] + 10;
Check();
msg = string.Format("玩家{0}人品爆发,进入时空隧道,前进10格", name[play]);
; break;
}
Console.Clear();
DrawMap();
if (msg != "")
{
Console.WriteLine(msg);
}
Console.WriteLine("玩家{0}掷出了{1}", name[play], step);
Console.WriteLine("*******玩家A和玩家B的位置");
Console.WriteLine("玩家{0}的位置{1}", name[play], player[play] + 1);
Console.WriteLine("玩家{0}的位置{1}", name[1 - play], player[1 - play] + 1);
}
}
判断范围方法
/// <summary>
/// 检查玩家的坐标是否在范围内
/// </summary>
static void Check()
{
for (int i=0; i < name.Length; i++)
{
if (player[i] > 99)
{
player[i] = 99;
}
if (player[i] < 0)
{
player[i] = 0;
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值