---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 猜拳游戏
{
class Program
{
static string Mode; //选择什么模式
static string Name; //人机对战角色名
static string[] Names = { "", "" }; //人人对战 第一个人和第二个人的名字初值都为空
static void Main(string[] args)
{
UI.StartUI();
int selectNum=SelectMode();
Console.WriteLine(Mode);
Role(selectNum);
GameStart();
Gaming(selectNum);
UI.EndUI();
Console.ReadKey();
}
/// <summary>
/// 选择模式方法 返回一个int值 1或者2
/// </summary>
static int SelectMode()
{
Console.WriteLine("请选择对战模式:");
Console.WriteLine("1.人机对战 2.玩家对战");
while (true)
{
Mode = Console.ReadLine();
if (Mode == "1")
{
Mode = "你选择的是--1.人机对战!";
return 1;
}
else if (Mode == "2")
{
Mode = "你选择的是--2.玩家对战!";
return 2;
}
else
{
Console.WriteLine("只能选择1或者2");
continue; //继续循环
}
}
}
/// <summary>
/// 选择角色方法 传入一个参数 1.是人机对战角色 2.是人人对战
/// </summary>
static void Role(int i)
{
if (i == 1)
{
#region 人机对战角色:
Console.WriteLine("请选择你的角色");
Console.WriteLine("1.灵儿 2.逍遥哥 3.月如");
while (true)
{
Name = Console.ReadLine();
if (Name == "1")
{
Name = "灵儿";
break;
}
else if (Name == "2")
{
Name = "逍遥哥";
break;
}
else if (Name == "3")
{
Name = "月如";
break; //跳出循环
}
else
{
Console.WriteLine("只能选择1或2或者3");
continue;
}
}
Console.WriteLine("你的角色是{0}", Name);
#endregion
}
else
{
#region 人人对战:
Console.WriteLine("请选择第一个人的角色");
Console.WriteLine("1.灵儿 2.逍遥哥 3.月如");
while (true)
{
Names[0] = Console.ReadLine();
if (Names[0] == "1")
{
Console.WriteLine("第一个人的角色是灵儿");
break;
}
else if (string.Equals(Names[0], "2"))
{
Console.WriteLine("第一个人的角色是逍遥哥");
break;
}
else if (string.Equals(Names[0], "3"))
{
Console.WriteLine("第一个人的角色是月如");
break; //跳出循环
}
else
{
Console.WriteLine("只能选择1或2或者3");
continue;
}
}
Console.WriteLine("请选择第二个人的角色");
Console.WriteLine("1.灵儿 2.逍遥哥 3.月如");
while (true)
{
Names[1] = Console.ReadLine();
if (Names[0] == Names[1]) //判断两个人的名字是否相同
{
Console.WriteLine("两个人的名字不能一样!,请重新输入");
}
else if (string.Equals(Names[1], "1"))
{
Names[1] = "灵儿";
break;
}
else if (string.Equals(Names[1], "2"))
{
Names[1] = "逍遥哥";
break;
}
else if (string.Equals(Names[1], "3"))
{
Names[1] = "月如";
break; //跳出循环
}
else
{
Console.WriteLine("只能选择1或2或者3");
continue;
}
}
Console.WriteLine("第二个人的角色是{0}", Names[1]);
#endregion
}
}
/// <summary>
/// 游戏是否开始
/// </summary>
static void GameStart()
{
while (true)
{
Console.WriteLine("要开始游戏?(y/n)");
string GameNum = Console.ReadLine();
if (GameNum == "y")
{
Console.Clear();
UI.StartUI();
Console.WriteLine("游戏开始......");
break;
}
else if (GameNum == "n")
{
Console.Clear();
UI.StartUI();
Console.WriteLine("等待开始游戏......");
Console.ReadKey();
continue;
}
else
{
Console.WriteLine("请选择y/n");
continue;
}
}
}
//进入两模式的判断 传入一个int值 1:人机对战 2:人人对战
static void Gaming(int j)
{
Console.WriteLine("1.布 2.剪子 3.石头");
if (j == 1)
{
#region 人机对战模式的判断:
int numP;
int numM;
int i = 0; //进行的次数
bool nextGame = true; //是否进行下一循环
while (nextGame)
{
#region 输入你出的拳
while (true)
{
try
{
Console.WriteLine("你先出拳......");
numP = Convert.ToInt32(Console.ReadLine());
switch (numP)
{
case 1:
Console.WriteLine("你出的是:布");
break;
case 2:
Console.WriteLine("你出的是:剪子");
break;
case 3:
Console.WriteLine("你出的是:石头");
break;
default:
Console.WriteLine("没有你输入的这项!");
continue;
}
break;
}
catch
{
Console.WriteLine("请输入正确的数字!");
continue;
}
}
#endregion
#region 机器随机出拳......
Random rM = new Random();
numM = rM.Next(1, 4); //随机生成1、2、3
Console.WriteLine("电脑正在出拳......");
switch (numM)
{
case 1:
Console.WriteLine("机器出的是:布");
break;
case 2:
Console.WriteLine("机器出的是:剪子");
break;
case 3:
Console.WriteLine("机器出的是:石头");
break;
}
#endregion
#region 判断谁赢
if (numP == numM)
{
Console.WriteLine("出的一样,平手!");
}
else if (numP == 1)
{
if (numM == 2)
{
Console.WriteLine("你输了");
}
else
Console.WriteLine("你赢了"); //机器出3
}
else if (numP == 2)
{
if (numM == 1)
{
Console.WriteLine("你赢了");
}
else
Console.WriteLine("你输了");//机器出3
}
else if (numP == 3)
{
if (numM == 1)
{
Console.WriteLine("你输了");
}
else
Console.WriteLine("你赢了");//机器出2
}
#endregion
i++;
#region 两次以上就清屏
if (i > 1)
{
Console.Write("输入任意键继续......");
Console.ReadKey(false);
Console.Clear();
UI.StartUI();
}
#endregion
#region 问用户是否进行下一轮?
while (true)
{
Console.WriteLine("对战次数:{0}", i);
Console.WriteLine("是否开始下一轮:(y/n)?");
string next = Console.ReadLine();
if (next == "y")
{
nextGame = true;
break;
}
else if (next == "n")
{
nextGame = false;
Console.WriteLine("游戏结束,按任意键退出......");
break;
}
else
{
Console.WriteLine("请输入正确的字符......");
continue;
}
}
#endregion
}
#endregion
}
else //j==2
{
#region 人人对战模式的判断:
int numFirst;
int numSecond;
int i = 0; //进行的次数
bool nextGame = true; //是否进行下一循环
while (nextGame)
{
#region 第一个人出拳
while (true)
{
try
{
Console.WriteLine("第一个人先出拳......");
numFirst = Convert.ToInt32(Console.ReadLine());
switch (numFirst)
{
case 1:
Console.WriteLine("第一个人出的是:布");
break;
case 2:
Console.WriteLine("第一个人出的是:剪子");
break;
case 3:
Console.WriteLine("第一个人出的是:石头");
break;
default:
Console.WriteLine("没有你输入的这项!");
continue;
}
break;
}
catch
{
Console.WriteLine("请输入正确的数字!");
continue;
}
}
#endregion
#region 第二个人出拳
while (true)
{
try
{
Console.WriteLine("第二个人再出拳......");
numSecond = Convert.ToInt32(Console.ReadLine());
switch (numSecond)
{
case 1:
Console.WriteLine("第二个人出的是:布");
break;
case 2:
Console.WriteLine("第二个人出的是:剪子");
break;
case 3:
Console.WriteLine("第二个人出的是:石头");
break;
default:
Console.WriteLine("没有你输入的这项!");
continue;
}
break;
}
catch
{
Console.WriteLine("请输入正确的数字!");
continue;
}
}
#endregion
#region 判断谁赢
if (numFirst == numSecond)
{
Console.WriteLine("出的一样,平手!");
}
else if (numFirst == 1)
{
if (numSecond == 2)
{
Console.WriteLine("第二个人赢了");
}
else
Console.WriteLine("第一个人赢了"); //第二个人出3
}
else if (numFirst == 2)
{
if (numSecond == 1)
{
Console.WriteLine("第一个人赢了");
}
else
Console.WriteLine("第二个人赢了");//第二个人出3
}
else if (numFirst == 3)
{
if (numSecond == 1)
{
Console.WriteLine("第二个人赢了");
}
else
Console.WriteLine("第一个人赢了");//第二个人出2
}
#endregion
i++;
#region 两次以上就清屏
if (i > 1)
{
Console.Write("输入任意键继续......");
Console.ReadKey(false);
Console.Clear();
UI.StartUI();
}
#endregion
#region 问用户是否进行下一轮?
while (true)
{
Console.WriteLine("对战次数:{0}", i);
Console.WriteLine("是否开始下一轮:(y/n)?");
string next = Console.ReadLine();
if (next == "y")
{
nextGame = true;
break;
}
else if (next == "n")
{
nextGame = false;
Console.WriteLine("游戏结束,按任意键退出......");
break;
}
else
{
Console.WriteLine("请输入正确的字符......");
continue;
}
}
#endregion
}
#endregion
}
}
}
#region 界面类
class UI
{
public static void StartUI()
{
Console.WriteLine("*************************欢 迎 入 游 戏 世 界*************************");
Console.WriteLine("\n");
Console.WriteLine(" **************************************");
Console.WriteLine(" **猜拳 开始**");
Console.WriteLine(" **************************************");
}
public static void EndUI()
{
Console.WriteLine("----------------------------------------------------------------------");
Console.WriteLine("*************************游 戏 结 束 !*************************");
Console.WriteLine("----------------------------------------------------------------------");
}
}
#endregion
}
谢谢浏览......
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------