题目:
随机数的应用-猜拳游戏:石头、剪刀、布
分析:1 两个对象(人person和机器compter),抽象出公共的部分(Player类,包含玩家姓名属性、积分属性、出拳的抽象方法),让人和机器实现它。
2 定义一个Game游戏类,包含PK的方法和显示最终结果的方法,
3 定义一个测试类,进行游戏,直到玩家选择退出游戏才结束对战
例如;
第1局开始
请输入1石头 2剪刀 3布
-->用户选择
-->输出结果
小白出拳:石头
电脑出拳:布
结果:电脑赢了
提示是否继续,继续请输入Y?【若继续】:
第2局开始
请输入1石头 2剪刀 3布
-->用户选择
-->输出结果 小白出石头 电脑出布 电脑赢了
【若不继续】:输出积分:小白积分:1 ,电脑积分:0
public class Game { private Person p; private Computer c; // private int i = 1; public Game(Person p,Computer c){ this.p = p; this.c = c; } /** * pk * 判断当前局的输赢结果 */ public void pk(){ //提升部分:五局 for (int i = 1; i <= 5; i++) { system.out.println("第" + i +"局"); //获取玩家出拳的数字 int pfist = p.showFist(); //获取电脑出拳的数字 int cfist = c.showFist(); //获取玩家出拳的具体 String pValue = getFistValue(pfist); //获取电脑出拳的具体 String cValue = getFistValue(cfist); //比较规则 if ((pfist == 1 && cfist == 2) ||(pfist == 2 && cfist == 3) || (pfist == 3 && cfist == 1) ) { System.out.println(p.getName() + "玩家出拳:" + pValue); System.out.println(c.getName() + "电脑出拳:" + cValue); System.out.println("恭喜你:" + p.getName() ); //用户积分 +1 p.setScore( p.getScore() + 1 ); }else if (pfist == cfist) { System.out.println(p.getName() + "玩家出拳:" + pValue); System.out.println(c.getName() + "电脑出拳:" + cValue); System.out.println("平局" ); }else{ System.out.println(p.getName() + "玩家出拳:" + pValue); System.out.println(c.getName() + "电脑出拳:" + cValue); System.out.println("你输了" + ",电脑:" + c.getName() + "赢了"); c.setScore( c.getScore() + 1 ); } } // i++; // 提升完之后:调用显示结果的方法 showResult(); } //获取猜拳对应的中文 public String getFistValue(int fist){ String fistValue = ""; switch (fist) { case 1: fistValue = "石头"; break; case 2: fistValue = "剪刀"; break; case 3: fistValue = "布"; break; default: break; } return fistValue; } //最终结果 public void showResult() { System.out.println("最终结果:"); System.out.println(p.getName() +"最终积分: " + p.getScore()); System.out.println(c.getName() +"最终积分: " + c.getScore()); } }
- 海报