猜拳 游戏

package Four;

import java.util.Random;
import java.util.Scanner;

public class MoraGame {
    public static void main(String[] args) {

        Tom t = new Tom();
        //记录最后输赢的次数
        int isWinCount = 0;

        //创建一个二维数组,接收局数,Tom出拳情况以及电脑出拳情况
        int[][] arr1 = new int[3][3];
        int j = 0;

        Scanner scanner = new Scanner(System.in);
        System.out.print("你想进行几次对局:");
        int n=scanner.nextInt();

        // 创建一个一维数组,接收输赢的情况
        String[] arr2 = new String[n];

        for (int i = 0; i < n; i++) {//比赛n次
            // 获取玩家出拳
            System.out.println("请输入你要出什么(0石头1剪刀2布)");
            int num = scanner.nextInt();
            t.setTomGuessNum(num);
            int tomGuess = t.getTomGuessNum();
            arr1[i][j + 1] = tomGuess;

            // 获取电脑出拳
            int comGuess = t.computerNum();
            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" + comGuess + "\t\t" + t.vsComputer());
            System.out.println("=========================================");
            System.out.println("\n\n");
            isWinCount = t.winCount(isWin);
        }

        // 对最终结果进行输出
        System.out.println("局数\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  ");
            }

            System.out.print(arr2[a]);
            System.out.println();
        }
        System.out.println("你赢了:" + isWinCount + "次");
    }

}

// Tom
class Tom {
    // 玩家出拳
    int tomGuessNum; //0,1,2
    // 电脑出拳
    int comGuessNum; //0,1,2
    // 玩家赢得次数
    int winCountNum;
    // 总局数
    int count = 1;


    /**
     *电脑随机生成猜拳的数字
     */
    public int computerNum() {
        Random r = new Random();
        comGuessNum = r.nextInt(3);      //  0-2
        // System.out.println(comGuessNum);
        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 vsComputer() {//0石头1剪刀2布
        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;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1while(true){learn}

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值