猜数字游戏
题目内容:
用C语言实现一个猜数字游戏。
进入程序,随机产生一个数字,输入数字猜这个数字的大小,直到猜中这个数字。当你输入的这个数字小于这个随机数,提示猜小了,当你输入数字大于这个随机数,则提示猜大了。直到猜中这个随机数,输出恭喜你猜中了,并结束程序。
具体实现:
C语言
在之前通过C语言实现过猜数字游戏,详见下面链接:
Java
题目分析:
1、首先需要产生一个随机数
2、从键盘输入,如果输入数字大了,给与提示,“猜大了!”;如果猜小了,给与提示“猜小了!”,直到猜中这个数字。
具体实现:
import java.util.Random;
import java.util.Scanner;
public class GuessNumber {
//猜数字游戏
//生成随机数
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Random rand = new Random();
int i = rand.nextInt(100) + 1;//生成0-100的随机数
System.out.println(i);//方便游戏的进行,我们可以将这个随机数打印出来
//判断键盘是否输入,当用户不想在输入,输入ctrl+d,退出程序
while (sc.hasNextInt()) {
int num = sc.nextInt();
if (num == i) {
System.out.println("猜中了!");
break;
} else if (num > i) {
System.out.println("猜大了!");
} else {
System.out.println("猜小了!");
}
}
}
}
当输入==Ctrl+d ==退出程序
代码优化
1、增加功能,完成简单、中等、困难,分别对应生成随机数为0—10,0—100,0—1000;
2、增加猜数字的次数限制,简单(20次)、中等(10次)、困难(5次);
具体实现:
import java.util.Random;
import java.util.Scanner;
public class GuessNumber {
//猜数字游戏
//生成随机数
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Random rand = new Random();
int bound = 1;
int time = 1;
System.out.println("请输入你想玩的难度,0——>简单、1——>中等、2——>困难");
int input = sc.nextInt();
switch (input) {
case 0:
bound = 10;
time = 20;
break;
case 1:
bound = 100;
time = 10;
break;
case 2:
bound = 1000;
time = 5;
break;
default:
bound = 10;
time = 20;
break;
}
int i = rand.nextInt(bound) + 1;//生成的随机数
System.out.println(i);//方便游戏的进行,我们可以将这个随机数打印出来
while (time > 0 && sc.hasNextInt()) {
int num = sc.nextInt();
if (num == i) {
System.out.println("猜中了!");
break;
} else if (num > i) {
System.out.println("猜大了!");
} else {
System.out.println("猜小了!");
}
time--;
System.out.println("剩余" + time + "次!");
}
}
}
总结:
1、这里主要使用了Java中随机数的生成,和输入输出的方法,注意需要导包哦~
import java.util.Random;
import java.util.Scanner;
还有对于switch语句和while循环的加强理解!
2、另外,在对于 连续输入的时候,可以使用,sc.hasNextXXX() 的方法,但是注意,退出的时候,是 Ctrl+d。