猜拳小游戏(Java)

有个人Tom,设计他的成员变量,成员方法,可以电脑猜拳,电脑每次都会随机生成0,1,2
0 表示 石头  1 表示 剪刀  2 表示 布
并可以显示Tom的输赢次数(清单),假定为玩三局两胜

 玩家类及各功能的实现

import java.util.Random;

//玩家类
public class Tom {
    //玩家出拳的类型
    int tomGuess;//0,1,2

    //电脑出拳的类型
    int comGuess;//0,1,2

    //玩家赢的次数
    int winCount;

    //比赛次数
    int count = 1;//一共比赛三次

    /**
     * 电脑随机生成猜拳的数字的方法
     * @return
     */
    public int comGuessWay() {
        Random r = new Random();
        comGuess = r.nextInt(3);//随机返回0,1,2中的数
        return comGuess;
    }

    /**
     * 设置玩家猜拳的数字的方法
     * @param tomGuess
     */
    public void setTomGuess(int tomGuess) {
        if (tomGuess > 2 || tomGuess < 0) {
            System.out.println("猜拳数输入错误,应输入0,1,2中的数!");
        }
        this.tomGuess = tomGuess;
    }

    public int getTomGuess() {
        return tomGuess;
    }

    /**
     * 比较猜拳的结果 0 石头,1 剪刀,2 布
     * @return
     */
    public String vsComputer() {
        if (tomGuess == 0 && comGuess == 1) {
            return "你赢了";
        } else if (tomGuess == 1 && comGuess == 2) {
            return "你赢了";
        } else if (tomGuess == 2 && comGuess == 0) {
            return "你赢了";
        } else if (tomGuess == comGuess) {
            return "平手";
        } else {
            return "你输了";
        }
    }

    public int winCount(String s) {
        count++;//控制玩的次数
        if (s.equals("你赢了")) {
            winCount++;//统计赢的次数
        }
        return winCount;
    }
}

主界面实现

package 猜拳游戏;

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

//测试类
public class testGame {
    //测试
    public static void main(String[] args) {
        //创建扫描器
        Scanner scanner = new Scanner(System.in);

        //创建一个玩家对象
        Tom t = new Tom();

        //用来记录最后输赢的次数
        int count = 0;

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

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

        System.out.println("----------欢迎来到猜拳游戏----------");
        for (int i = 0; i < 3; i++) {//比赛三次
            //获取玩家出的拳
            System.out.println("请输入你要出的拳(0-拳头 1-剪刀 2-布)->");
            int num = scanner.nextInt();

            //检查出拳是否在0,1,2中的任意一个
            t.setTomGuess(num);
            int tomGuess = t.getTomGuess();
            arr1[i][j + 1] = tomGuess;

            //获取电脑出的拳
            int comGuess = t.comGuessWay();
            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电脑的出拳\t输赢情况");
            System.out.println(t.count + "\t\t" + tomGuess + "\t\t\t" + comGuess + "\t\t\t" + t.vsComputer());
            System.out.println("================================");
            System.out.println("\n");
            //统计输赢的次数
            count = t.winCount(isWin);
        }
        //对游戏的最终结果进行输出
        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("你赢了" + count + "次");
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_54702911/article/details/121453805