UML图
代码:
public class Player { String name; Integer grade; public Player(String name, Integer grade) { this.name = name; this.grade = grade; } //出拳 public String play(int p) { switch (p) { case 1 : return "剪刀"; case 2 : return "石头"; case 3 : return "布"; } return null; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getGrade() { return grade; } public void setGrade(Integer grade) { this.grade = grade; }
public class Game { private Player you; private Player rival; private int number; public Game(String name1, String name2) { this.you = new Player(name1,0); this.rival = new Player(name2,0); number = 0; } //1.剪刀 2.石头 3.布 public int play(int youFist, int rivalFist) { number++; boolean flag = (youFist==1 && rivalFist==3) || (youFist==2 && rivalFist==1) || (youFist==3 && rivalFist==2); boolean flag1 = (youFist==1 && rivalFist==1) || (youFist==2 && rivalFist==2) || (youFist==3 && rivalFist==3); if(flag) { you.setGrade(you.getGrade()+1); return 1; } if(flag1) { return 0; } else { rival.setGrade(rival.getGrade()+1); return -1; } } public void start() { Scanner input = new Scanner(System.in); int num,num1; System.out.print("请出拳:1.剪刀 2.石头 3.布(输入相应数字):"); num = input.nextInt(); System.out.println("你出拳:"+ you.play(num)); num1 = new Random().nextInt(3) + 1;; System.out.println(rival.getName() + "出拳:" + rival.play(num1)); switch (play(num, num1)) { case 1 : System.out.println("你赢了!"); break; case 0 : System.out.println("平局!"); break; case -1 : System.out.println("你输了!"); } } public void end() { System.out.println(rival.getName() + " vs " + you.getName()); System.out.println("对战次数:"+number+"\n"); System.out.println("姓名\t\t得分"); System.out.println(you.getName()+"\t\t"+you.getGrade()); System.out.println(rival.getName()+"\t\t"+rival.getGrade()); } }
测试代码:
public static void main(String[] args) { String rival; String you; Game game; Scanner input = new Scanner(System.in); System.out.println("\t\t*****************************"); System.out.println("\t\t*********猜拳,开始***********"); System.out.println("\t\t*****************************"); System.out.println("出拳规则:1.剪刀 2.石头 3.布"); System.out.print("请选择对方角色(1.刘备 2.孙权 3.曹操):"); rival = getRole(input.nextInt()); System.out.print("请输入你的名字:"); you = input.next(); game = new Game(you, rival); System.out.println(you+" vs "+rival); System.out.println("要开始吗?(y/n) "); String ready = input.next(); while (ready.equals("y")) { game.start(); System.out.print("是否开始下一轮(y/n):"); ready = input.next(); System.out.println("-------------------------------"); } game.end(); } static String getRole(int player) { switch (player) { case 1: return "刘备"; case 2: return "孙权"; case 3: return "曹操"; } return null; }