ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

实现猜拳游戏

2021-08-22 18:29:44  阅读:127  来源: 互联网

标签:猜拳 countPeople 实现 countComputer System 游戏 println 输入 out


通过控制台方式实现一个人机对战的猜拳游戏,用户通过输入(1.剪刀 2.石头 3.布),机器随机生成(1.剪刀 2.石头 3.布),胜者积分,n局以后通过积分的多少判定胜负。

package homework.chapter3.section5;

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

public class FingerGuessingGame {

    private String peoplePlayer;
    private String computerPlayer;
    /**
     * 用于计算人类玩家赢局数
     */
    private int countPeople;
    /**
     * 用于计算电脑玩家赢局数
     */
    private int countComputer;

    public void fingerGuessing() {
        // 解释比赛规则
        System.out.println("===猜拳游戏===\n比赛规则:用户通过输入数字(1-剪刀,2—石头,3-布)与电脑进行对战,当某一方的分数达到率先达到3分,该方胜利!");

        while(true) {
            System.out.println("请输入1~3之间的整数:");
            int a;

            // 判断人类玩家输入的内容
            while (true) {
                // 正确接收用户的输入
                Scanner input = new Scanner(System.in);

                if (input.hasNextInt()) {
                    int b = input.nextInt();
                    if (b > 0 && b < 4) {
                        a = b;
                        break;
                    } else {
                        System.out.println("输入的数字不在规定的范围,请重新输入!");
                    }
                } else {
                    System.out.println("输入的不是整数,请重新输入!");
                }
            }

            peoplePlayer = getResult(a);

            // 电脑玩家随机产生的内容
            Random r = new Random();
            int b = r.nextInt(3) + 1;

            computerPlayer = getResult(b);

            //比较两者胜负
            boolean peopleWin = ((a == 1 && b == 3) || (a == 2 && b == 1) || (a == 3 && b == 2));
            if(a == b) {
                System.out.println("本场比赛平局!因为你输入的是“" + peoplePlayer + "”,电脑输入的是“" +
                        computerPlayer + "”。\n用户积分为:" + countPeople + ",电脑积分为:" + countComputer);
            } else if (peopleWin) {
                countPeople++;
                System.out.println("恭喜你,本局你获胜!因为你输入的是“" + peoplePlayer + "”,电脑输入的是“" +
                        computerPlayer + "”。\n用户积分为:" + countPeople + ",电脑积分为:" + countComputer);
            } else {
                countComputer++;
                System.out.println("很遗憾,本局电脑获胜!因为你输入的是“" + peoplePlayer + "”,电脑输入的是“" +
                        computerPlayer + "”。\n用户积分为:" + countPeople + ",电脑积分为:" + countComputer);

            }

            //比较二者的积分,确定最终的胜利者
            if (countPeople == 3 || countComputer == 3) {
                System.out.println("比赛结束!");
                if (countPeople > countComputer) {
                    System.out.println("恭喜你,获得最终胜利!\n你获得" + countPeople + "分,电脑获得" + countComputer + "分。");
                }else {
                    System.out.println("很遗憾,电脑获得最终的胜利。\n你获得" + countPeople + "分,电脑获得" + countComputer + "分。");
                }
                break;
            }
        }
    }

    /**
     * 把通过输入数字产生对应结果的操作封装为一个私有方法
     * @param num
     * @return
     */
    private String getResult(int num) {
        String result = null;
        switch (num) {
            case 1:
                result = "剪刀";
                return result;
            case 2:
                result = "石头";
                return result;
            case 3:
                result = "布";
                return result;
            default:
        }
        return result;
    }
}

package homework.chapter3.section5;

public class FingerGuessingGameTest {

    public static void main(String[] args) {
        FingerGuessingGame fingerGuessingGame = new FingerGuessingGame();
        fingerGuessingGame.fingerGuessing();
    }
}

运行结果:
在这里插入图片描述

标签:猜拳,countPeople,实现,countComputer,System,游戏,println,输入,out
来源: https://blog.csdn.net/ahwhlcz/article/details/119855890

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有