请选择 进入手机版 | 继续访问电脑版

【java】简单的猜拳小游戏

[复制链接]
林雨宣 发表于 2020-12-31 18:56:17 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
简朴的豁拳小游戏
emmmmm
我居然水了这么长时间。。。。
  1. /* * finger-guessing game * 作者:@wonder * 豁拳游戏 * 0-石头 * 1-剪子 * 2-布 * */package com.company;import java.util.Scanner;public class FingerGuessing {    static Scanner in = new Scanner(System.in);    static final String InfoText = "" +            "************************\n" +            "这是一个豁拳游戏\n" +            "请输入您的选择:\n" +            "0:石头\n" +            "1:剪子\n" +            "2:布\n" +            "************************\n";    public static void main(String[] args) throws InterruptedException {//        CheckRandom();        while (true) {            FingerGuessing game = new FingerGuessing();            game.Start();            System.out.println("现在输入1退出,输入其他重新游戏");            if(in.nextLine().equals("1")){                System.exit(0);            }        }    }    public void Start() throws InterruptedException {        PrintInfoText();        int cmdNum = GetCmdNum();        Thread.sleep(1000);        int computerNum = GetRandomNum();        int result = Check(cmdNum, computerNum);        Thread.sleep(2000);        PrintResult(result);    }    private void PrintInfoText() {        System.out.println(InfoText);    }    private int GetCmdNum() {        int cmdNum = -1;        Scanner in = new Scanner(System.in);        while (true) {            String cmdStr = in.nextLine();            try {                cmdNum = Integer.parseInt(cmdStr);                if (cmdNum < 0 || 2 < cmdNum) {                    throw new Exception();                }                System.out.printf("你的选择是:%s\n", NumToType(cmdNum));                return cmdNum;            } catch (Exception e) {                System.out.println("请输入对应数字!");            }        }    }    private int GetRandomNum() {        int x = (int) (Math.random() * 3);        System.out.printf("盘算机的选择是:%s\n",NumToType(x));        return x;    }    //-1左边胜利,0平手,1右边胜利    //玩家放左边    private int Check(int numA, int numB) {        if (numA == numB) return 0;        if ((numA + 1) % 3 == numB) return -1;        return 1;    }    private void PrintResult(int result) {        String resultStr;        switch (result) {            case -1:                resultStr = "你赢了!!!牛逼!!!";                break;            case 0:                resultStr = "平手!!!";                break;            case 1:                resultStr = "你输了!!!垃圾!!!";                break;            default:                resultStr = "数字转为对应出招范例错误!";                break;        }        System.out.println(resultStr+                "\n************************");    }    private String NumToType(int x) {        switch (x) {            case 0:                return "0:石头";            case 1:                return "1:剪子";            case 2:                return "2:布";            default:                System.out.println("数字转为对应出招范例错误!");                System.exit(0);                return "";        }    }    public static void CheckRandom(String[] args) {        FingerGuessing game = new FingerGuessing();        int[] count = {0, 0, 0};        for (int i = 0; i < 10000; i++) {            int x = game.GetRandomNum();            count[x]++;        }        System.out.printf("0:%d\n1:%d\n2:%d\n", count[0], count[1], count[2]);    }}
复制代码
来源:https://blog.csdn.net/qq_40956332/article/details/111936810
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )