前言:
此时小伙伴们对“猜拳游戏c程序设计要求”大约比较关切,咱们都想要了解一些“猜拳游戏c程序设计要求”的相关资讯。那么小编同时在网上网罗了一些关于“猜拳游戏c程序设计要求””的相关知识,希望姐妹们能喜欢,你们快快来学习一下吧!游戏基本设定:有两个人(一个是用户,一个是电脑)现实中可以分别出如下图所示拳的样式
因为是控制台项目,因此程序中使用文字剪刀,石头,歩表示游戏中两人出拳样式
游戏流程:1)用户(player)出拳,给出提示让用户选择任意一种出拳样式(自己编写检测输入的选择是否合法) 2)电脑(computer)出拳,使用Random类的方法产生1-3的随机数 3)将两"人"的出拳结果进行比对,符合上图中任意一组,如用户"剪刀",电脑"步",用户即可获得胜利
使用面向对象的编程方式从中分析出:
1)需要一个用户与电脑即参与猜拳游戏中两个出拳的玩家
2)需要一个中间的裁判,用于判断两个玩家的出拳后的比对结果
3)两个玩家需要拥有的成员至少包括:用于存储显示出拳结果的属性与出拳的方法,裁判至少拥有判断的方法,用于显示哪个玩家可以获得胜利
用户与电脑类的相关代码
//代表用户 public class Player{ //出拳结果 public string PName { get; set; } /// <summary> /// 出拳方法 /// </summary> /// <param name="num">用户选择出拳的样式1剪刀2石头3步</param> /// <returns>返回出拳结果</returns> public int Punches(int num) { int result = 0; switch (num) { case 1: result = 1; PName = "剪刀"; break; case 2: result = 2; PName = "石头"; break; case 3: result = 3; PName = "步"; break; default: result = 1; PName = "剪刀"; break; } return result; }}//代表电脑public class Computer{ //出拳结果 public string CName { get; set; } /// <summary> /// 出拳方法 /// </summary> /// <returns>返回出拳结果</returns> public int Punches() { Random rm = new Random(); //产生1-3之间的整数 int num = rm.Next(1, 4); int result = 0; switch (num) { case 1: result = 1; CName = "剪刀"; break; case 2: result = 2; CName = "石头"; break; case 3: result = 3; CName = "步"; break; default: result = 1; CName = "剪刀"; break; } return result; }}
裁判类使用枚举返回两个玩家出拳的比对结果
//用于裁判方法的返回值类型public enum PlayerState{ PlayerWin,//用户赢 ComputerWin,//电脑赢 draw//平手}
裁判判断的依据拿两个玩家出拳的结果相减,如果结果为-2与1则用户赢;如果结果是-1与2则电脑;如果相同则平手
//裁判类 public class Judgment { //裁判方法,传入两个玩家出拳结果 public PlayerState IsPlayerWin(int player, int computer) { int result = player - computer; //如果相同返回平手 if (result == 0) { return PlayerState.draw; } //是-2与1 表示用户赢 else if (result == -2 || result == 1) { return PlayerState.PlayerWin; } //表示电脑赢 else { return PlayerState.ComputerWin; } } }//实例化对象,调用对象属性与方法class Program{ static void Main(string[] args) { //实例化3个类 Player p1 = new Player(); Computer p2 = new Computer(); Judgment cp = new Judgment(); Console.WriteLine("请用户选择出拳: 1剪刀 2石头 3布"); while (true) { int num = int.Parse(Console.ReadLine()); //自己编写num值是否合法的检测 //如果不合法让用户一直输入 int p1Result = p1.Punches(num); //电脑出拳 int p2Result = p2.Punches(); //将两个玩家出拳结果 //传入裁判类中的判定方法 PlayerState result = cp.IsPlayerWin(p1Result, p2Result Console.WriteLine("用户出拳 {0} 电脑出拳 {1} 猜拳结果 {2}", p1.PName, p2.CName, result); Console.WriteLine(""); Console.WriteLine("请用户选择出拳: 1剪刀 2石头 3布"); } } //以后可以将其稍做修改移植到窗体程序中}
标签: #猜拳游戏c程序设计要求