//电脑类
public class Computer {
Scanner input = new Scanner(System.in);
private String name;// 姓名
private int count;// 赢的次数
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
// 让电脑随机输出1.2.3
public String punches(int result) {
switch (result) {
case 1:
return "剪刀";
case 2:
return "石头";
case 3:
return "布";
}
return "";
}
// 让玩家选择电脑姓名
public void giveName(int cptr) {
switch (cptr) {
case 1:
this.setName("曹操");
break;
case 2:
this.setName("刘备");
break;
case 3:
this.setName("张飞");
break;
default:
System.out.println("输入有误,系统默认电脑玩家为诸葛亮");
this.setName("诸葛亮");
break;
}
}
}
//游戏类
public class Game {
Scanner input = new Scanner(System.in);
static int sum;// 一共玩了多少把
Computer c = new Computer();
Player p = new Player();
// 编写规则
public void start() {
System.out.println("———————————————————————————————————————");
System.out.println("———————————————————————————————————————");
System.out.println("——————————欢迎使用人机猜拳游戏——————————");
System.out.println("———————————————————————————————————————");
System.out.println("———————————————————————————————————————");
System.out.println("出拳规则:输入1:(剪刀)\t输入2:(石头)\t输入3:(布)\n");
System.out.println("请选择电脑昵称:1.曹操\t2.刘备\t3.张飞");
int cptr = input.nextInt();
c.giveName(cptr);// 选择电脑昵称
p.giveName();// 用户输入玩家昵称
System.out.println(p.getName() + "\tVS\t" + c.getName() + "\n");
System.out.println("要开始吗?(y/n):");
}
// 判断输赢
public void judge() {
System.out.println("————————————————————————————\n");
System.out.println("请出拳:1.剪刀\t2.石头\t3.布(输入相应数字)");
int quan = input.nextInt();
String quan_str = p.punches(quan);// 玩家出拳
if (quan_str.equals("输入错误!")) {
do {
System.out.println("输入错误,重新输入");
quan = input.nextInt();
quan_str = p.punches(quan);// 玩家出拳
if (!quan_str.equals("输入错误!")) {
break;
}
} while (true);
}
System.out.println(p.getName() + "出拳:" + quan_str);
Random ran = new Random();
int result = ran.nextInt(3) + 1;
String result_str = c.punches(result);// 电脑出拳
System.out.println(c.getName() + "出拳:" + result_str);
if (quan == result) {
System.out.println("平局");
this.sum++;
}
if ((quan == 1 && result == 3) || (quan == 2 && result == 1) || (quan == 3 && result == 2)) {
System.out.println("恭喜你赢了!");
p.setCount(p.getCount() + 1);
} else if ((result == 1 && quan == 3) || (result == 2 && quan == 1) || (result == 3 && quan == 2)) {
System.out.println("你输了!");
c.setCount(c.getCount() + 1);
}
sum++;
}
public void output() {
System.out.println("一共玩了" + sum + "把");
System.out.println("你赢了" + p.getCount() + "把");
System.out.println("电脑赢了" + c.getCount() + "把");
int a = p.getCount() + c.getCount();
System.out.println("平局" + (sum - a) + "把");
if (p.getCount() > c.getCount()) {
System.out.println("恭喜你赢了!");
} else {
System.out.println("电脑赢了!");
}
}
}
//玩家类
public class Player {
Scanner input = new Scanner(System.in);
private String name;// 姓名
private int count;// 赢的次数
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
// 出拳方法
// 让用户输入123出拳
public String punches(int quan) {
switch (quan) {
case 1:
return "剪刀";
case 2:
return "石头";
case 3:
return "布";
default:
return "输入错误!";
}
}
// 让玩家输入姓名
public void giveName() {
System.out.println("请输入你的游戏昵称:");
String name = input.next();
this.setName(name);
}
}
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
Game g = new Game();
g.start();
String yn = input.next();
if (yn.equals("y")) {
String ny = "y";
do {
g.judge();
System.out.println("是否下一局(y/n)");
ny = input.next();
} while (!ny.equals("n"));
// 输出最终结果
g.output();
System.out.println("谢谢使用!");
} else if (yn.equals("n")) {
System.out.println("谢谢使用!");
System.exit(0);
}
}
}