无Bug,Java语言编写猜拳小游戏

猜拳小游戏

习题代码

package com.newer.oop;
import java.util.InputMismatchException;
import java.util.Scanner;
/**
 * author:HCQ
 * date: 2018/7/26
 * see: 猜拳游戏
 */
public class GuessFist {
    static int playerNumber;   //玩家输入的数字
    static int computerNumber;   //电脑随机产生的数字
    static String jiXu;   //玩家判断是否继续
    private static Scanner sc;   
    /*进行电脑出拳和判断输赢*/
    public static void computer() {
        //电脑出拳
        computerNumber = (int) (Math.random()*3+1);   //随机产生数字1-3
        switch(computerNumber) {
        case 1: System.out.println("计算机出的是:"+"石头");break;
        case 2: System.out.println("计算机出的是:"+"剪刀");break;
        case 3: System.out.println("计算机出的是:"+"布");break;
        }
        //判断输赢
        if((playerNumber == 1 && computerNumber == 2) || (playerNumber == 2 && computerNumber == 3) || (playerNumber == 3 && computerNumber == 1)) {
            System.out.println("你赢了");
        } else {
            if((playerNumber == 2 && computerNumber == 1) || (playerNumber == 3 && computerNumber == 2) || (playerNumber == 1 && computerNumber == 3)) {
                System.out.println("你输了");
            } else {
                System.out.println("您和计算机打平手");
            }
        }
    }

    /*main方法*/
    public static void main(String[] args) {    
        String shiTou = "石头";   //石头
        String jianDao = "剪刀";    //剪刀
        String bu = "布";       //布
        try {
            sc = new Scanner(System.in);

            while(true) {   //无限循环,在判断"是否继续?(y/n)"可以跳出循环结束游戏
                System.out.print("请出拳:1:石头,2:剪刀,3:布:");
                playerNumber = sc.nextInt();   //玩家输入数字出拳

                if(playerNumber>0 && playerNumber<4) {
                    if(playerNumber == 1) {   //玩家输入的数字为1,出石头
                        System.out.println("您出的是:"+shiTou);
                        computer();     
                    }
                    if(playerNumber == 2) {   //玩家输入的数字为2,出剪刀
                        System.out.println("您出的是:"+jianDao);
                        computer();     
                    } 
                    if(playerNumber == 3) {   //玩家输入的数字为3,出布
                        System.out.println("您出的是:"+bu);
                        computer();
                    } 
                } else {  //玩家输入的不是1、2、3,输入报错,退出游戏
                    System.out.println("输入错误,游戏退出!");
                    break;
                }

                //是否继续游戏
                System.out.println("是否继续?(y/n)");
                jiXu = sc.next();
                if(jiXu.equals("y")) {   //继续游戏,跳出本次循环,进行下轮游戏(下次循环)
                    continue;
                } else {   
                    if(jiXu.equals("n")) {    //退出游戏,跳出循环
                        break;
                    } else {   //输入的不是y或n,输入报错,退出游戏
                        System.out.println("输入错误,游戏退出!");
                        break;
                    }
                }
            }
        } catch(InputMismatchException e) {
            System.out.println("输入错误,游戏退出!");
        } catch(Exception e) {
            System.out.println("其他错误。");
            e.printStackTrace();
        } finally {
            //提示游戏已退出
            System.out.println("程序结束!");
            System.exit(0);   //退出系统
        }
    }
}

代码仅供参考,谢谢。

2018/8/4

猜你喜欢

转载自blog.csdn.net/qq_39869062/article/details/81412701