相信大家在小时候一定都玩过石头剪刀布,而且规则都已经了然入心了吧。

好了废话不多说了,直接说游戏实现:

我们模拟人与电脑玩剪刀石头布的游戏,人的输入,由 Scanner 键盘端输入,电脑由随机数生成。

package Practice;

import java.util.Scanner;

public class Rock_Paper_Scissors {
    public static void main(String[] args) {
//        需求:玩家和电脑的一个5局三胜的剪刀石头布游戏。
//        变量:
//        玩家和电脑选择的手势。
        int playerInput, computerInput;
        int playerWinCount = 0;
        int computerWinCount = 0;

//        记录局数
        int counter = 0;
//        定义常量
        final int ROCK = 0;
        final int SCISSORS = 1;
        final int PAPER = 2;
//        最大胜利局数
        final int Max_Counter = 3;
        //定义扫描器对象
        Scanner scanner = new Scanner(System.in);
        boolean end= true;
        while (end){
            //        选择是否开始本局游戏

            int open_Game;
            final int YES = 0;
            final int NO = 1;
            System.out.println("请您选择是否开启本回合游戏:【0-->YES】【1-->NO】");
            open_Game = scanner.nextInt();
            if (open_Game == 0) {
                System.out.println("--------------------欢迎您参加本回合游戏--------------------");
                System.out.println("-----------------------------------------------------------");
                while (playerWinCount < Max_Counter && computerWinCount < Max_Counter) {
//            玩家选择手势
                    System.out.println("请您输入手势数字:【0-->石头】【1-->剪刀】【2-->布】");
                    playerInput = scanner.nextInt();

//              电脑随机手势
                    computerInput = (int) (Math.random() * 3);

//              打印玩家选择的内容
                    String str;
                    if (playerInput == ROCK) {
                        str = "石头";
                    } else if (playerInput == SCISSORS) {
                        str = "剪刀";
                    } else {
                        str = "布";
                    }
                    System.out.println("玩家选择的手势为:" + str);
//            打印电脑选择的内容
                    switch (computerInput) {
                        case ROCK:
                            str = "石头";
                            break;
                        case SCISSORS:
                            str = "剪刀";
                            break;
                        case PAPER:
                            str = "布";
                            break;
                    }
                    System.out.println("电脑选择的手势为:" + str);

//              比较并打印比较的结果。
                    if (computerInput == ROCK) {
                        if (playerInput == ROCK) {
                            System.out.println("**********本次平局!**********");
                        } else if (playerInput == SCISSORS) {
                            System.out.println("*****本局【电脑】胜利了!*****");
                            computerWinCount++;
                        } else {
                            System.out.println("*****本局【玩家】胜利了!*****");
                            playerWinCount++;
                        }
                    } else if (computerInput == SCISSORS) {
                        if (playerInput == SCISSORS) {
                            System.out.println("**********本次平局!**********");
                        } else if (playerInput == PAPER) {
                            System.out.println("*****本局【电脑】胜利了!*****");
                            computerWinCount++;
                        } else {
                            System.out.println("*****本局【玩家】胜利了!*****");
                            playerWinCount++;
                        }
                    } else {
                        if (playerInput == PAPER) {
                            System.out.println("**********本次平局!**********");
                        } else if (playerInput == ROCK) {
                            System.out.println("*****本局【电脑】胜利了!*****");
                            computerWinCount++;
                        } else {
                            System.out.println("*****本局【玩家】胜利了!*****");
                            playerWinCount++;
                        }
                    }
//            输出当前比分
                    System.out.println("【电脑】VS【玩家】:[" + computerWinCount + "]VS[" + playerWinCount + "]");
                    System.out.println("************************下一局************************");

                }
                //            打印最终结果
                if (computerWinCount == Max_Counter) {
                    System.out.println("本回合【电脑】最终胜利了!!!");
                } else {
                    System.out.println("本回合【玩家】最终胜利了!!!");
                }
            } else {
                System.out.println("--------------------欢迎下次光临!--------------------");
                break;
            }

        }

    }
}