package day09_test;

import java.util.Random;
import java.util.Scanner;

import day09.GamePlayer;
import day09.GameRobot;

public class GameTest {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入猜拳比赛回合数:");
int maxNumber = input.nextInt();

//回合计数器
int count = 0;
//玩家胜利数
int countP = 0;
//电脑胜利数
int countR = 0;
while(count<maxNumber) {
System.out.println("请输入你想出的数字:(1.剪刀 2.石头 3.布)");
int PlayNum = input.nextInt();
if (PlayNum>3 || PlayNum<=0) {
System.out.println("输入有误!请重新输入:");
PlayNum =input.nextInt();
}
GamePlayer player = new GamePlayer(PlayNum);
player.say();

//机器人随机输入1-3
Random r = new Random();
int RobotNum = r.nextInt(3)+1;
GameRobot robot = new GameRobot(RobotNum);
robot.say();

//判断输赢
if (player.getNumber()==robot.getNumber()) {
count++;
System.out.println("第"+count+"局:双方一致,请重新猜拳!");

}else if (player.getNumber()==1) {//玩家出剪刀
if (robot.getNumber()==3) {//电脑出布
count++;
countP++;
System.out.println("第"+count+"局:玩家赢,您得一分!");

}else if (robot.getNumber()==2) {//电脑出石头
count++;
countR++;
System.out.println("第"+count+"局:电脑赢,它得一分!");

}

}else if (player.getNumber()==2) {//玩家出石头
if (robot.getNumber()==3) {//电脑出布
count++;
countP++;
System.out.println("第"+count+"局:电脑赢,它得一分!");

}else if (robot.getNumber()==1) {//电脑出剪刀
count++;
countR++;
System.out.println("第"+count+"局:玩家赢,您得一分!");

}

}else if (player.getNumber()==3) {//玩家出布
if (robot.getNumber()==2) {//电脑出布
count++;
countP++;
System.out.println("第"+count+"局:玩家赢,您得一分!");

}else if (robot.getNumber()==1) {//电脑出剪刀
count++;
countR++;
System.out.println("第"+count+"局:电脑赢,它得一分!");

}
}
}
if (countP==countR) {
System.out.println("电脑得分:"+countR+" 玩家得分:"+countP);
System.out.println("比赛结束,平局!");
}else if (countP>countR) {
System.out.println("电脑得分:"+countR+" 玩家得分:"+countP);
System.out.println("比赛结束,玩家胜利!");
}else {
System.out.println("电脑得分:"+countR+" 玩家得分:"+countP);
System.out.println("比赛结束,电脑胜利!");
}

}

}

 

 

package day09;

public class GameRobot {
private int number;

public int getNumber() {
return number;
}

public void setNumber(int number) {
this.number = number;
}

public GameRobot() {
super();
// TODO Auto-generated constructor stub
}

public GameRobot(int number) {
super();
this.number = number;
}
public void say() {
switch(this.number) {
case 1:
System.out.println("电脑出的是剪刀");
break;
case 2:
System.out.println("电脑出的是石头");
break;
case 3:
System.out.println("电脑出的是布");
break;
}
}
}

 

 

package day09;
/**
* 今天的任务是通过控制台方式实现一个人机对战的猜拳游戏,用户通过输入
(1.剪刀 2.石头 3.布),机器随机生成(1.剪刀 2.石头 3.布),胜者积分,
n 局以后通过积分的多少判定胜负。
任务过程:
1. 定义机器类,以及拳头属性(此属性只有三个值:剪刀,石头,布。这里
的值可以使用数值代替)
2. 定义生成随机数的方法(让机器生成剪刀,石头,布的值),赋值给第一
步的拳头属性
3. 定义测试类,获取用户输入的剪头石头布的值,和随机生成的值比较
4. 测试中,定义变量保存胜者积分
* @author 86182
*
*/
public class GamePlayer {
private int number;

public int getNumber() {
return number;
}

public void setNumber(int number) {
this.number = number;
}

public GamePlayer() {
super();
// TODO Auto-generated constructor stub
}

public GamePlayer(int number) {
super();
this.number = number;
}
public void say() {
switch(this.number) {
case 1:
System.out.println("玩家出的是剪刀");
break;
case 2:
System.out.println("玩家出的是石头");
break;
case 3:
System.out.println("玩家出的是布");
break;
}
}


}