package com.renjicaiquan.entity; public class Computer { private String name; private int score; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } public Computer(String name, int score) { super(); this.name = name; this.score = score; } public Computer() { super(); } @Override public String toString() { return "Computer [name=" + name + ", score=" + score + "]"; } public int doGame(){ int x=(int) (Math.random()*3+1); switch(x){ case 1: System.out.println(this.getName()+"出拳:剪刀"); break; case 2: System.out.println(this.getName()+"出拳:石头"); break; case 3: System.out.println(this.getName()+"出拳:布"); break; } return x; } } package com.renjicaiquan.entity; import java.util.Scanner; public class Game { private User user=new User(); private Computer computer=new Computer(); private int count; static Scanner input=new Scanner(System.in); public void welcome(){ System.out.println("-----------------------欢迎进入游戏------------------------"); System.out.println(" ***********************"); System.out.println(" ** 猜拳,开始 **"); System.out.println(" ***********************"); } public void start(){ welcome(); System.out.println(" 出拳规则:1、剪刀 2、石头 3、布"); System.out.print("请选择对方角色(1:刘备 2:孙权 3:曹操):"); int check_1=getIntOneToThree(); switch(check_1){ case 1: computer.setName("刘备"); break; case 2: computer.setName("孙权"); break; case 3: computer.setName("曹操"); break; } System.out.print("请输入你的名字:"); user.setName(input.next()); System.out.println(user.getName()+" VS "+computer.getName()+" "); System.out.println("要开始吗(y/n)?"); String answer=getYorN(); if("n".equals(answer)){ System.out.println("谢谢使用!"); System.exit(0); } String isAgain=""; do{ int a=user.doGame(); int b=computer.doGame(); compareUserAndComputer(a, b); System.out.print(" 是否继续开始下一轮(y/n):"); isAgain=getYorN(); }while(isAgain.equals("y")); showResult(); } public static int getIntOneToThree(){ while(!input.hasNext("[1,2,3]{1}")){ input=new Scanner(System.in); System.out.println("输入有误,请重新输入!"); } return input.nextInt(); } public void setUser(User user) { this.user = user; } public User getUser() { return user; } public void setComputer(Computer computer) { this.computer = computer; } public Computer getComputer() { return computer; } public void compareUserAndComputer(int a,int b){ //a表示人出的拳 b表示电脑出的拳 int x=a-b; this.setCount(this.getCount()+1); switch(x){ case 1: case -2: user.setScore(user.getScore()+1); System.out.println("结果:恭喜,你赢了!"); break; case -1: case 2: computer.setScore(computer.getScore()+1); System.out.println("结果:^_^,你输了,真笨!"); break; default: System.out.println("结果:平局!"); } } public void setCount(int count) { this.count = count; } public int getCount() { return count; } public void showResult(){ System.out.println("--------------------------------"); System.out.println(user.getName()+" VS "+computer.getName()); System.out.println("对战次数:"+this.getCount()); System.out.println(" 姓名 得分"); System.out.println(user.getName()+" "+user.getScore()); System.out.println(computer.getName()+" "+computer.getScore()+" "); if(user.getScore()>computer.getScore()){ System.out.println(computer.getName()+":这不可能!"); }else if(user.getScore()==computer.getScore()){ System.out.println(computer.getName()+":再战300回合!"); }else{ System.out.println(computer.getName()+":我"+computer.getName()+"是无敌的,哈哈哈..."); } System.out.println("--------------------------------"); } public static String getYorN(){ while(!input.hasNext("[y,n]{1}")){ input=new Scanner(System.in); System.out.println("输入有误,请重新输入!"); } return input.next(); } } package com.renjicaiquan.entity; public class User { private String name; private int score; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } public User(String name, int score) { super(); this.name = name; this.score = score; } public User() { super(); } @Override public String toString() { return "User [name=" + name + ", score=" + score + "]"; } public int doGame(){ System.out.println("你出拳:"); int x=Game.getIntOneToThree(); switch(x){ case 1: System.out.println("你出拳:剪刀"); break; case 2: System.out.println("你出拳:石头"); break; case 3: System.out.println("你出拳:布"); break; } return x; } } package com.renjicaiquan.test; import com.renjicaiquan.entity.Game; public class TestGame { public static void main(String[] args){ Game g=new Game(); g.start(); } }