package com.sf;

import java.util.Scanner;

/**
 * @author guyanqing
 */
public class GuessNumber {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int option = 0;//存放选项的
        while (true) {
            System.out.println("**********************************");
            System.out.println("     1----等级1：0-100");
            System.out.println("     2----等级2：0-1000");
            System.out.println("     3----等级3：0-10000");
            System.out.println("     4----等级4：0-100000");
            System.out.println("     0----退出");
            System.out.println("**********************************");

            System.out.println("请输入对应数字进行操作：");
            option = scanner.nextInt();
            if (option >= 0 && option <= 4) {
                break;//选择正确
            }
            System.out.println("输入错误，请重新输入！");
        }
        if (option != 0) {
            int range = 10;
            for (int i = 1; i <= option; i++) {//输入了几就在10后面加几位
                range *= 10;
            }

            int rand = randNumber(0, range);//随机生成一个0-range的数
            System.out.println(rand);
            int count = 0;
            while (true) {
                System.out.println("请输入一个数字：");
                int temp = scanner.nextInt();
                count++;
                if (judge(rand, temp) == 0) {
                    System.out.println("猜小了！");
                } else if (judge(rand, temp) == 2) {
                    System.out.println("猜大了！");
                }
                if (judge(rand, temp) == 1) {
                    System.out.println("恭喜你第" + count + "次答对，游戏结束！");
                    break;
                }
            }
        }else{
            System.out.println("程序退出！");
        }
    }

    /**
     * 产生随机数组
     *
     * @param startPos 范围的起始
     * @param endPos   范围的终止
     * @return 产生的数组
     */
    public static int randNumber(int startPos, int endPos) {
        int number = (int) (Math.random() * endPos + startPos);//随机生成startPos - endPos 的整数
        return number;//返回生成的数组;
    }

    /**
     * 数字判断
     *
     * @param originalNumber 原数字
     * @param judgeNumber    需要判断的数字
     * @return 0 下了
     * 1 等于
     * 2 大了
     */
    public static int judge(int originalNumber, int judgeNumber) {
        if (originalNumber > judgeNumber) {
            return 0;
        } else if (originalNumber < judgeNumber) {
            return 2;
        }
        return 1;
    }
}
