Java 石头剪刀布游戏

石头剪刀布游戏

石头剪刀布
人:输入出拳
电脑:随机出拳
判断 人是输 还是赢 打平
循环出拳(输入y继续 n结束) 
记录得分
分析:
1.人去出拳的方法
2.电脑出拳的方法
3.判断胜利方法

// 声明静态全局方法
    static Scanner scanner = new Scanner(System.in);
    public static void main(String[] args) {
        scanner = new Scanner(System.in);
        //  声明一个空的字符串
        String string = "";
        //  计分
        int perNum = 0;
        int comNum = 0;
        do {
            //  人出拳
            int num1 = personToFist();
            System.out.println("人出: " + toFist(num1));

            //  电脑出拳
            int num2 = computerToFist();
            System.out.println("电脑出: " + toFist(num2));

            //  打印判断结果
            String rel = isWin(num1, num2);
            System.out.println(rel);

            //  记分
            if (rel.equals("人赢")) {
                perNum++;
                comNum--;
            } else if (rel.equals("你输了,电脑胜利")) {
                perNum--;
                comNum++;
            }
            System.out.println("人得分: " + perNum);
            System.out.println("电脑得分: " + comNum);
            //  是否继续游戏
            System.out.println("输入是否继续 y/n");
            string = scanner.nextLine();
            if (string.equals("n")) {
                break;
            }
        } while (string.equals("y"));


        //  打印比分
        System.out.println("人得分: " + perNum);
        System.out.println("电脑得分: " + comNum);
        scanner.close();
    }
    //  人出拳     

    public static int personToFist() {
        System.out.println("人: 请出拳 输入1石头 2剪刀 3布");
        String string = scanner.nextLine();
        // 字符串转成 int 类型(前提:这个字符串必须是个整型)
        int num = Integer.parseInt(string);
        return num;
    }
    //  电脑出拳
    public static int computerToFist() {
        int num = (int)(Math.random() * (3 - 1 + 1) + 1);
        return num;
    }
    //  通过出拳的数字 获取对应出的什么拳
    public static String toFist(int num) {
        String string = "";
        switch (num) {
        case 1:
            string = "石头";
            break;
        case 2:
            string = "剪刀";
            break;
        case 3:
            string = "布";
            break;
        default:
            string = "放弃";
            break;
        }
        return string;
    }
    //  判断谁赢了
    /*
     * 人             电脑
     * 石头 -- 1        1
     * 剪刀 -- 2         2
     * 布   -- 3        3
     * 
     * 人 石头
     *     1     --     1      平手  == 0
     *     1     --     2      人赢  == -1
     *     1     --     3      人输  == -2
     *    剪刀   
     *     2     --     1      人输  ==  1
     *     2     --     2      平手  == 0
     *     2     --     3      人赢  ==  -1
     *     布
     *     3     --     1      人赢  ==  2
     *     3     --     2      人输  ==  1
     *     3     --     3      平手  ==  0
     *     
     *     人赢 两个拳相减 结果  -1 或者 2
     */
    public static String isWin(int num1, int num2) {
        //  让双方的拳头 相减
        int rel = num1 - num2;
        if (rel == -1 || rel == 2) {
            return "你赢了";
        } else if (rel == 0) {
            return "平手";
        } else {
            return "你输了,电脑胜利";
        }
    }

http://blog.csdn.net/huzongnan/article/list

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值