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;

}

}



}