C#面向对象编程之猜拳游戏实现方法
本文实例讲述了C#面向对象编程之猜拳游戏实现方法。分享给大家供大家参考。具体实现方法如下:
1.需求
现在要制作一个游戏,玩家与计算机进行猜拳游戏,玩家出拳,计算机出拳,计算机自动判断输赢。
2.需求分析
根据需求,来分析一下对象,可分析出:玩家对象(Player)、计算机对象(Computer)、裁判对象(Judge)。玩家出拳由用户控制,使用数字代表:1石头、2剪子、3布计算机出拳由计算机随机产生裁判根据玩家与计算机的出拳情况进行判断输赢。
3.类对象的实现
①.玩家类示例代码:
classPlayer
{
stringname;
publicstringName
{
get{returnname;}
set{name=value;}
}
publicintShowFist()
{
Console.WriteLine("请问,你要出什么拳? 1.剪刀 2.石头 3.布");
intresult=ReadInt(1,3);
stringfist=IntToFist(result);
Console.WriteLine("玩家:{0}出了1个{1}",name,fist);
returnresult;
}
///<summary>
///将用户输入的数字转换成相应的拳头
///</summary>
///<paramname="input">
///<returns></returns>
privatestringIntToFist(intinput)
{
stringresult=string.Empty;
switch(input)
{
case1:
result="剪刀";
break;
case2:
result="石头";
break;
case3:
result="布";
break;
}
returnresult;
}
///<summary>
///从控制台接收数据并验证有效性
///</summary>
///<paramname="min">
///<paramname="max">
///<returns></returns>
privateintReadInt(intmin,intmax)
{
while(true)
{
//从控制台获取用户输入的数据
stringstr=Console.ReadLine();
//将用户输入的字符串转换成Int类型
intresult;
if(int.TryParse(str,outresult))
{
//判断输入的范围
if(result>=min&&result<=max)
{
returnresult;
}
else
{
Console.WriteLine("请输入1个{0}-{1}范围的数",min,max);
continue;
}
}
else
{
Console.WriteLine("请输入整数");
}
}
}
}②.计算机类示例代码:
classComputer
{
//生成一个随机数,让计算机随机出拳
Randomran=newRandom();
publicintShowFist()
{
intresult=ran.Next(1,4);
Console.WriteLine("计算机出了:{0}",IntToFist(result));
returnresult;
}
privatestringIntToFist(intinput)
{
stringresult=string.Empty;
switch(input)
{
case1:
result="剪刀";
break;
case2:
result="石头";
break;
case3:
result="布";
break;
}
returnresult;
}
}③.裁判类示例代码这个类通过一个特殊的方式来判定结果:
classJudge
{
publicvoidDetermine(intp1,intp2)
{
//1剪刀 2石头3布
//13 1-3=-2在玩家出1剪刀的情况下,计算机出3布,玩家赢
//21 2-1=1 在玩家出2石头的情况下,计算机出1剪刀,玩家赢
//32 3-2=1 在玩家出3布的情况下,计算机出2石头,玩家赢
if(p1-p2==-2||p1-p2==1)
{
Console.WriteLine("玩家胜利!");
}
elseif(p1==p2)
{
Console.WriteLine("平局");
}
else
{
Console.WriteLine("玩家失败!");
}
}
}④.对象的实现:
staticvoidMain(string[]args)
{
Playerp1=newPlayer(){Name="Tony"};
Computerc1=newComputer();
Judgej1=newJudge();
while(true)
{
intres1=p1.ShowFist();
intres2=c1.ShowFist();
j1.Determine(res1,res2);
Console.ReadKey();
}
}
希望本文所述对大家的C#程序设计有所帮助。