JAVA石头剪刀布

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();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值