【无标题】猜数字游戏.重构版1.2(2023-12-9)

//代码开始
import java.util.*;

public class Main {
  public static void main(String[] args) {
    System.out.print("\n" + "浅哥要饭饭2023-12-9重构版1.2" + "\n");
    System.out.print("浅哥要饭饭2023-11-25优化版1.1" + "\n");
    System.out.println(
        "<<<<<猜 数 字 游 戏>>>>>" + "\n" + "\n" + "<<  例如: (开始数字) 1~100 (结束数字)  >>>" + "\n");
    // 获得随机数区间
    // 获得两个数字

    System.out.println("请输入开始数字");
    int number1 = sr1();
    // 开始第一个数字
    System.out.println("请输入结束数字");
    int number2;
    // 结束第二个数字
    // 通过while循环调用sr1()方法给,结束二个数字赋值。
    while (true) {
      int n = sr1();
      if (n >= number1 | n < number1) {
        number2 = n;
        if (n > number1) {
          break;
        } else {
          System.out.println("结束数字有误,请重新输入");
        }
        ;
      }
    }

    // 通过Random1()方法获得的随机数
    int number3 = Random1(number1, number2);
    System.out.println("随机数为:" + number3);
    System.out.println("请输入:你猜的数字");
    // 通过while循环反复对比,随机数 和 用户输入的数字
    // 并更新范围数字
    while (true) {
      int number4 = sr1();
      if (number4 <= number2 & number4 >= number1) {

        int[] gx = panduan(number1, number2, number3, number4);
        // 更新范围数字
        number1 = gx[0];
        number2 = gx[1];
      } else {
        // 更改字符串方法
        panduan(number1, number2);
      }
      ;
      // 如果用户猜对了,结束游戏。否则一直循环
      if (number3 == number4) {
        break;
      }
      ;
    }
    ;
  }

  /*四个方法
  1.获得的一个返回的int数字
  public static int sr1()
  2.获得的随机数,传入2个数字
    public static int Random1(int a, int b)
  3.判断大小返回一个数组,传入4个数字
  public static int[] panduan(int a, int b, int s, int y)
  4.更改字符串第一个第二个值,传入2和数字
  public static void panduan(int a, int b)

  */
  // 方法一
  // 获得一个数字
  public static int sr1() {
    int a;
    while (true) {
      Scanner sr = new Scanner(System.in);
      if (sr.hasNextInt()) {
        a = sr.nextInt();
        if (a <= 0) {
          System.out.print("1.数字不能,小于'0',等于'0'" + "\n" + "2.数字不能超出设定区间范围");
          continue;
        }
        break;
      } else {
        System.out.println("不是数字");
        sr.close();
      }
    }
    return a;
  }

  // 方法二
  // 获得随机数
  public static int Random1(int a, int b) {
    Random rd = new Random();
    int shuijishujg = rd.nextInt((b - a) + 1) + a;
    // 生成随机数
    return shuijishujg;
    // 返回结果
  }
  // 方法三
  // 判断大小并输出结果
  public static int[] panduan(int a, int b, int s, int y) {
    int[] fhzi = new int[2];
    String[] dax = new String[] {"大了", "小了", "n", "到", "n", "之间"};
    String[] dax1 = new String[6];
    if (s == y) {
      System.out.println("恭喜你,答对了");
    } else {
      if (y > s) {
        // 大了
        if (y >= a & y <= b) {

          dax1[0] = dax[0];
          dax1[1] = dax[0];
          dax1[2] = (String) ("" + a);
          dax1[3] = dax[3];
          dax1[4] = (String) ("" + (y - 1));
          dax1[5] = dax[5];
          fhzi[0] = a;
          fhzi[1] = y - 1;
        }
      } else {
        // 小了
        if (y >= a & y <= b) {
          dax1[0] = dax[1];
          dax1[1] = dax[1];
          dax1[2] = (String) ("" + (y + 1));
          dax1[3] = dax[3];
          dax1[4] = (String) ("" + b);
          dax1[5] = dax[5];
          fhzi[0] = y + 1;
          fhzi[1] = b;
        }
      }

      for (int i = 0; i < dax.length; i++) {
        System.out.print(dax1[i]);
      }
      System.out.println("\n" + "请输入:你猜的数字");
    }
    return fhzi;
  }
  // 方法四
  // 更改字符串第一个第二个值
  public static void panduan(int a, int b) {

    String[] dax = new String[] {"大了", "小了", "n", "到", "n", "之间"};
    String[] dax1 = new String[6];

    dax1[0] = "";
    dax1[1] = "";
    dax1[2] = "" + a;
    dax1[3] = dax[3];
    dax1[4] = "" + b;
    dax1[5] = dax[5];

    for (int i = 0; i < dax.length; i++) {
      System.out.print(dax1[i]);
    }
    System.out.println(":>>请正确输入数字");
  }
}
//代码结束

 

 

效果图

affa359560cb4942bf69b7e3c12e6187.jpg

 主代码2张图

f9fd55a40d014c89b2797826e501ed1e.jpg

 e31f81c425cb4410a6c9ff3f66809648.jpg

 方法区4和方法

方法1.2

e982681b99af4f7892c7a6e6df479b48.jpg

 方法3

30fba275e09145b28a331fa8810ee0c2.jpg

 方法4

c0152145348847efa1a883598437cfb0.jpg

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值