import java.util.Random;
import java.util.Scanner;
public class guess {
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];
Scanner input = new Scanner(System.in);
for (int i = 0; i < 3; i++) {
System.out.println("请输入你要出的拳(0-石头,1-剪刀,2-布):");
int num = input.nextInt();
t.setTomGuessNum(num);
int tomguess = t.comGuessNum;
arr1[i][j + 1] = tomguess;
//获取电脑打的拳
int comguess = t.getComGuessNum();
arr1[i][j + 2] = comguess;
//将玩家猜的拳与电脑作比较
String isWin = t.vsComputer();
arr2[i] = isWin;
arr1[i][j] = t.count;
System.out.println("====================================");
System.out.println("局数\t玩家的出拳\t电脑的出拳\t输赢情况");
System.out.println(t.count + "\t" + tomguess + "\t\t\t" + comguess + "\t\t\t"+isWin);
System.out.println("\n\n");
isWinCount = t.winCount(isWin);
System.out.println("====================================");
}
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.print(arr2[a]);
System.out.println();
}
System.out.println("你赢了"+isWinCount+"次");
}
}
//tom类的创建是核心
class Tom{
//用户猜的
int tomGuessNum;
//电脑猜的
int comGuessNum;
//用户赢的次数
int winCountnum=0;
//记录玩的局数
int count = 1;
public int getComGuessNum(){
// 返回0-2的随机数
Random r = new Random();
comGuessNum = r.nextInt(3);
return comGuessNum ;
}
public void setTomGuessNum(int tomGuessNum){
if(tomGuessNum < 0 || tomGuessNum > 2){
throw new IllegalArgumentException("数字输入错误") ;
}
this.tomGuessNum = tomGuessNum;
}
public String vsComputer(){
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;
}
}
其中涉及到的java知识点有:
throw new IllegalArgumentException()
程序出现错误后,系统会自动抛出异常;此外,Java 也允许程序自行抛出异常,自行抛出异常使用 throw 语句来完成。基本格式为
throw new ExceptionInstance;
像我这里就会弹出这样的警告
以及字符串如何判断相等使用
string1.equals(string2)
如果字符串1和字符串2相等返回true,反之返回false
还有如何生成随机数的方法,之前的博客也讲过
这里使用的是
Random r = new Random();
guessnum = r.nextInt();