//代码开始
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(":>>请正确输入数字");
}
}
//代码结束
效果图
主代码2张图
方法区4和方法
方法1.2
方法3
方法4