有个人Tom设计他的成员变量,成员方法,可以电脑猜拳。电脑每次都会随机生成0,1,2
0表示石头,1表示剪刀,2表示布
并要可以显示Tom的输赢次数(清单)
package exercise7;
import java.util.Random;
import java.util.Scanner;
public class Homework14 {
public static void main(String[] args) {
Tom t = new Tom();
//用来记录最后输赢的情况
int isWinCount = 0;
//创建一个二维数组,用来接收局数,Tom出拳情况,以及电脑出拳情况
int[][] arr1 = new int[3][3];
int j=0;
//创建一个一维数组,用来接收输赢情况
String[] arr2 = new String[3];
for (int i = 0; i < 3; i++) {
//第几局
arr1[i][j] = t.count;
//获取玩家出的拳
arr1[i][j + 1] = t.setTomGuessNum();
//获取电脑出的拳
arr1[i][j + 2] = t.setComGuessNum();
//比较玩家和电脑的大小
arr2[i] = t.judge();
//对每局的情况进行输出
System.out.println("=========================================");
System.out.println("局数\t\t玩家出的拳\t电脑出的拳\t输赢情况");
System.out.println(t.count + "\t\t" + t.tomGuessNum + "\t\t\t" + t.comGuessNum + "\t\t\t"+t.judge());
isWinCount = t.winCount(t.judge());
}
//对游戏的最终结果进行输出
System.out.println("\n\n");
System.out.println("局数\t\t\t玩家出的拳\t电脑出的拳\t输赢情况");
for (int a = 0; a < arr1.length; a++) {
for (int b = 0; b < arr1[a].length; b++) {
System.out.print(arr1[a][b]+" \t\t\t");
}
System.out.println(arr2[a]);
System.out.println();
}
System.out.println("你赢了"+isWinCount+"次");
}
}
class Tom {
int tomGuessNum;//玩家出拳类型0 = 拳头,1 = 剪刀,2 = 布
int comGuessNum;//电脑出拳类型0 = 拳头,1 = 剪刀,2 = 布
int winGuessNum;//玩家赢的次数
int count = 1;//一共比赛3次
//电脑生成随机猜拳数字的方法
public int setComGuessNum() {
Random r = new Random();
comGuessNum = r.nextInt(3);
return comGuessNum;
}
//玩家生成随机猜拳数字的方法
public int setTomGuessNum() {
System.out.println("请输入你要出的拳(0 = 拳头,1 = 剪刀,2 = 布):");
Scanner s = new Scanner(System.in);
tomGuessNum = s.nextInt();
if (tomGuessNum < 0 || tomGuessNum > 2) {//判断输入的数字是否符合要求
System.out.println("输入的数字错误,请重新输入");
return setTomGuessNum();//输入错误的话,返回setTomGuessNum(),重新输入
}
return tomGuessNum;
}
//判断输赢
public String judge() {
if (tomGuessNum == 0 && comGuessNum == 1) {//拳头>剪刀
return "你赢了";
} else if (tomGuessNum == 1 && comGuessNum == 2) {//剪刀>布
return "你赢了";
} else if (tomGuessNum == 2 && comGuessNum == 0) {//布>拳头
return "你赢了";
} else if (tomGuessNum == comGuessNum) {//相同,为平局
return "平局";
} else {
return "你输了";
}
}
//记录玩家赢的次数
public int winCount(String s) {
count++;//控制玩的次数
if (s.equals("你赢了")) {//统计赢的次数
winGuessNum++;
}
return winGuessNum;
}
}
结果显示:
请输入你要出的拳(0 = 拳头,1 = 剪刀,2 = 布):
1
=========================================
局数 玩家出的拳 电脑出的拳 输赢情况
1 1 1 平局
请输入你要出的拳(0 = 拳头,1 = 剪刀,2 = 布):
1
=========================================
局数 玩家出的拳 电脑出的拳 输赢情况
2 1 2 你赢了
请输入你要出的拳(0 = 拳头,1 = 剪刀,2 = 布):
1
=========================================
局数 玩家出的拳 电脑出的拳 输赢情况
3 1 0 你输了
局数 玩家出的拳 电脑出的拳 输赢情况
1 1 1 平局
2 1 2 你赢了
3 1 0 你输了
你赢了1次
Process finished with exit code 0