问题:
有个人 Tom 设计他的成员变量、成员方法。可以电脑猜拳,电脑每次会随
0表示石头,1表示剪刀,2表示布,并要可以显示Tom的输赢次数(清单),以3局为例:
import jdk.swing.interop.SwingInterOpUtils;
import java.util.Random;
import java.util.Scanner;
/**
* @Author wanghaiyang
* id ************
* @date 2021/11/6 16:05
*/
/*有个人 Tom 设计他的成员变量、成员方法。可以电脑猜拳,电脑每次会随机生成0,1,2
* 0表示石头,1表示剪刀,2表示布,并要可以显示Tom的输赢次数(清单)*/
public class P261This13 {
public static void main(String[] args) {
Tom tom = new Tom();
int isWinCount = 0;//比赛赢的次数
Scanner scanner = new Scanner(System.in);
int [][] arr1=new int[3][3];//接收局数、出拳情况
int j =0;//表示二维数组的列项
String[] arr2=new String[3];//接收输赢情况
for (int i =0;i<3;i++){//比赛sum次
//玩家出拳:
System.out.println("请输入你要出的拳:");
int num=scanner.nextInt();
tom.setTomGuessNum(num);
int tomGuess = tom.getTomGuessNum() ;
//tom.Judge(tom.getsum2(num2), tom.getRandom());
arr1[i][j+1] =tomGuess;
//获取电脑的
int comGuess =tom.computerNum();
arr1[i][j+2] = comGuess;
//两者比较
String isWin = tom.Judge();
arr2[i] = isWin;
arr1[i][j]=tom.count;
//输出每局情况:
System.out.println("==============================");
System.out.println("局数\t玩家出拳\t电脑出拳\t输赢情况 ");
System.out.println(tom.count +"\t\t"+tomGuess+"\t\t"+comGuess+"\t\t"+isWin);
System.out.println("==============================");
}
//最终结果:
System.out.println("==============最终结果==================");
System.out.println("局数\t\t玩家出拳\t\t电脑出拳\t\t输赢情况");
for (int a=0;a< arr1[a].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("======================================");
System.out.println("你赢了"+tom.count+"次");
}
}
class Tom{
int tomGuessNum;//tom出拳类型
int comGuessNum;//电脑出拳类型
int winCountNum;//玩家赢的次数
int count ;//比赛次数
//输出tom出的数
public void showInfo(){
}
//获取电脑出的数
public int computerNum(){
Random random = new Random();
comGuessNum=random.nextInt(3);
return comGuessNum;
}
//玩家出的拳:
public void setTomGuessNum(int tomGuessNum){
if (tomGuessNum>2 || tomGuessNum<0){
throw new IllegalArgumentException("数字输入错误");
}
this.tomGuessNum = tomGuessNum;
}
public int getTomGuessNum(){
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("你赢了")){
winCountNum++;
}
return winCountNum;
}
}
结果: