今天的任务是通过控制台方式实现一个人机对战的猜拳游戏,用户通过输 入(1.剪刀2.石头3.布),机器随机生成(1.剪刀2.石头3.布),胜者积分, n局以后通过积分的多少判定胜负。
代码如下
电脑的特性
private String name;//私有化名字和分数
private int score=0;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore() {
score = 0;
}
Computer(String name){
this.name = name;
}
//随机生成1-3的数
public int guess() {
int result = (int)(Math.random()*3+1);
return result;
}
public void addScore() {
score++;
}
人的特性
private String name;
private int score=0;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore() {
score=0;
}
Person(String name){
this.name = name;
}
public int guess() {
Scanner sc = new Scanner(System.in);
System.out.println("请玩家输入猜拳 1、剪刀 2、石头 3、布");
int result = sc.nextInt();
return result;
}
public void addScore() {
score++;
}
主程序
public class Main {
static String per = null;
static String com = null;
static Person q1 = new Person("玩家");
static Computer q2 = new Computer("电脑");
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入轮数");
int numbers = sc.nextInt();
q1.setScore();//输入开始分数
q2.setScore();
int count = 1;//判断轮数
boolean loop = true;
while (loop) {
int result = q1.guess();//玩家的操作
int result1 = q2.guess();//电脑的操作
count++;//记录玩了多少轮
switch (result) {
case 1:{
per = "剪刀";
}break;
case 2:{
per = "石头";
}break;
case 3:{
per = "布";
}break;
}
switch (result1) {
case 1:{
com = "剪刀";
}break;
case 2:{
com = "石头";
}break;
case 3:{
com = "布";
}break;
}
juice();
//退出本程序
if(count==numbers) {
loop = false;
}
}
if(q1.getScore() == q2.getScore()) {
System.out.println("本轮平手");
}else if(q1.getScore() > q2.getScore()) {
System.out.println("恭喜您获胜");
}else if(q1.getScore() < q2.getScore()) {
System.out.println("很遗憾,您失败了");
}
}
//判断获胜的条件
public static void juice() {
if((per =="剪刀"&&com =="布")||(per =="石头"&&com =="剪刀")||(per =="布"&&com =="石头")) {
q1.addScore();
System.out.println("本局您获胜");
}
if((com =="剪刀"&&per =="布")||(com =="石头"&&per =="剪刀")||(com =="布"&&per =="石头")) {
q2.addScore();
System.out.println("本局您输了");
}
if((com =="剪刀"&&per =="剪刀")||(com =="石头"&&per =="石头")||(com =="布"&&per =="布")) {
System.out.println("本局平手");
}
}