数字炸弹(简单)

目录

题目:

源代码:

运行结果 

(1)错误考虑:

 (2)正常运行 

 思路分析


题目:

("游戏规则如下:");
("~1.系统会随机生成一个1-1500之间的整数作为数字炸弹");
("~2.请您在系统所给区间每次猜想一位整数");
("~3.当你猜想的数字与数字炸弹相同时,视为游戏结束!");

源代码:

package com.Linhai;

import com.Linhai.expressStation.IO.View;

import java.util.Scanner;

public class GuessNumGame {

    public static void main(String[] args) {
        System.out.println("游戏规则如下:");
        System.out.println("~1.系统会随机生成一个1-1500之间的整数作为数字炸弹");
        System.out.println("~2.请您在系统所给区间每次猜想一位整数");
        System.out.println("~3.当你猜想的数字与数字炸弹相同时,视为游戏结束!");
        System.out.println("----------------------------------------------");
        System.out.println("游戏开始:");
        try {
            GuessNumGame.view();
        } catch (Exception e) {
            System.out.println("你的输入有误,注意输入数字,游戏重新开始!");
            GuessNumGame.view();
        }
    }

    public static int getGuessNum() {
        return (int) (Math.random() * 1500);
    }

    public static void view() {
        int guessNum = getGuessNum();
//        System.out.println(guessNum);
        System.out.println("你输入0-1500范围中,您猜想的数字:");
        Scanner scanner = new Scanner(System.in);
        int guess = Integer.parseInt(scanner.nextLine());
        isIn(guess, guessNum, 1500, 0);
    }

    public static void isIn(int num, int isTrue, int max, int min) {
        Scanner scanner = new Scanner(System.in);
        if (num < isTrue) {
            if (num > max || num < min) {
                System.out.println("请按照提示信息,输入对应区间内的数字:");
                num = Integer.parseInt(scanner.nextLine());
                isIn(num, isTrue, max, min);
            }
            System.out.println("请输入" + num + "到" + max + "之间的一个数字!");
            min = num;
            num = Integer.parseInt(scanner.nextLine());
            isIn(num, isTrue, max, min);
        } else if (num > isTrue) {
            if (num > max || num < min) {
                System.out.println("请按照提示信息,输入对应区间内的数字:");
                num = Integer.parseInt(scanner.nextLine());
                isIn(num, isTrue, max, min);
            }
            System.out.println("请输入" + min + "到" + num + "之间的一个数字!");
            max = num;
            num = Integer.parseInt(scanner.nextLine());
            isIn(num, isTrue, max, min);
        } else if (num == isTrue) {
            System.out.println("恭喜你,游戏结束!数字炸弹的值为:" + num);
        }
    }
}


运行结果 

(1)错误考虑:


 (2)正常运行 

 


思路分析

  1. 我们首先需要一种方法,由此来获得我们这个数字炸弹的最先预定的值
  2. 多次使用递归,将我们输入的值num,也是我们不断猜想的值num,作为isTrue()方法其中之一的参数,让我们将num在多次根据不同情况,将其赋值给max和min之后,给出提示信息。由此来不断缩小猜想数值的范围。【min和max的值是动态变化的】
  3. 考虑各种可能存在的错误,将错误处理。
  4. 多次运行代码,查找隐藏漏洞,不断完善我们的代码。


编写不易,如有帮助,可点赞收藏;如有问题可联系博主,qq:2280006919        

@Hanpig编写

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值