import java.util.Random;
import java.util.Scanner;
public class Homework14{
public static void main(String[] args){
//随机数使用方法
// Random r = new Random();
// System.out.println(r.nextInt(3));
System.out.println("游戏开始,共进行5局猜拳");//提示游戏已开始
Game myGuessGame = new Game();//给myGuessGame开空间
myGuessGame.guessGame();//使用猜拳方法
}
}
class Tom{//定义一个Tom类
//用tomNum表示Tom出的拳
int tomNum;
//用winNum表示Tom赢得次数
int winNum;
//再用一个gameNum表示比赛的次数
int gameNum;
public Tom(int gameNum){//用构造器来定义比赛次数
this.gameNum = gameNum;
}
}
class Computer{//定义一个Computer类
//用comNum表示电脑随机出的拳
int comNum;
//定义一个让电脑出拳的方法computerNum
public int computerNum(){
Random r = new Random();
return r.nextInt(3);
}
}
class Game{
//创建一个猜拳游戏方法,用int的形式返回Tom赢的次数
Scanner myScanner = new Scanner(System.in);
Tom t = new Tom(5);//括号内表示玩家意愿的比赛次数
Computer c = new Computer();
//创建一个方法表示游戏规则
public int gameRule(){//返回1表示赢,0表示平,-1表示输
t.tomNum = myScanner.nextInt();//接收玩家出的拳
c.comNum = c.computerNum();//接收电脑出的拳
//以下将两者出的拳进行输赢判断(return100用来1.表示输入错误 2.避免方法无返回值)
if (t.tomNum == 0){
if (c.comNum == 0){
return 0;
}
else if (c.comNum == 1){
return 1;
}
else if (c.comNum == 2){
return -1;
}else{
return 100;
}
}
else if (t.tomNum == 1){
if (c.comNum == 0){
return -1;
}
else if (c.comNum == 1){
return 0;
}
else if (c.comNum == 2){
return 1;
}
else{
return 100;
}
}
else if (t.tomNum == 2){
if (c.comNum == 0){
return 1;
}
if (c.comNum == 1){
return -1;
}
if (c.comNum == 2){
return 0;
}
else{
return 100;
}
}else{
System.out.println("你输入有误,游戏结束");
return 100;
}
}
//创建游戏主执行方法
public void guessGame(){
int temp ;//创建一个临时变量保存游戏结果
int i;
for( i = 1; i <= t.gameNum; i++){
System.out.println("请出拳");
temp = gameRule();//使用gameRule方法并将结果赋给temp
if(temp == 100){//输入有误时
break;
}else if(temp == 1){//当玩家输入正确且赢时
t.winNum++;
System.out.println("===============\n出拳情况如下\n===============\n你出了"
+ t.tomNum + "\n电脑出了" + c.comNum + "\n===============");
}else {//剩余情况(只可能是-1和0)时
System.out.println("===============\n出拳情况如下\n===============\n你出了"
+ t.tomNum + "\n电脑出了" + c.comNum + "\n===============");
}
}
if (i == 6){
System.out.println(t.gameNum + "局中,你赢了" + t.winNum + "局");
}else{
}
}
}