c语言sscanf函数的用法是什么
241
2023-02-14
Java实现猜数程序
用java编写一个猜数程序,供大家参考,具体内容如下
要求如下:
编写一个猜数程序。命令行显示菜单:1.开始;2.退出。用户选择1,则程序生成一个0~99之间的随机整数,命令行显示“请输入你猜的数:”让用户猜。用户输入猜测的数据,猜对了命令行显示“你猜对了”,并且出现菜单:1.再来一次;2.退出。没有猜对程序给出提示(如:太大了,太小了),并要求在命令行继续输入猜测的值;三次没猜对则程序公布正确的数字,并且出现菜单:1.再来一次;2.退出。猜数时任何一个环节,命令行上总会显示用户的总得分情况。得分规则如下:一次猜中得3分,第二次猜中得2分,第三次得1分,三次没有猜中扣2分。主类的名称定为GuessNumber。
上代码
import java.util.InputMismatchException;
import java.util.Random;
import java.util.Scanner;
public class GuessNumber {
public static int choice;
public static int point = 0;
//控制choice为0/1,防脸滚键盘
public void judge01()
{
try {
Scanner sc = new Scanner(System.in);
choice = sc.nextInt();
switch (choice)
{
case 1: break;
case 2: System.exit(0);
default:
{
System.out.println("请输入0-1:");
judge01();
}
}
}
catch (InputMismatchException e) //非整数(小数、字符)会被捕获
{
System.out.println("请输入整数(0-1)!");
judge01();
}
}
//计算得分
public int point(int count)
{
if (count == 1)
{
point += 3;
return point;
}
else if (count == 2)
{
point += 2;
return point;
}
else if (count == 3)
{
point += 1;
return point;
}
else
{
point -= 2;
return point;
}
}
//猜数部分
public int start(int num, int count) //返回值为count
{
//try...catch...语句防误输入
try {
Scanner sc = new Scanner(System.in);
int input_number;
System.out.println("请输入你猜的数(0-99):");
input_number = sc.nextInt();
if (input_number < 0 || input_number > 99) //控制输入数字的范围
{
System.out.println("输入的整数范围:[0,99]");
return start(num, count);
}
else
{
if (input_number < num)
{
count++;
if (count == 3) //count为3时结束猜数并公布正确数字
{
System.out.println("三次都没有猜中,游戏结束!");
System.out.println("正确数字:"+num);
count++;
return count;
}
System.out.println("太小了,请重新输入:");
return start(num, count);
}
else if (input_number > num)
{
count++;
if (count == 3)
{
System.out.println("三次都没有猜中,游戏结束!");
System.out.println("正确数字:"+num);
count++;
return count;
}
System.out.println("太大了,请重新输入:");
return start(num, count);
}
else
{
count++;
System.out.println("恭喜你,猜对了!");
return count;
}
}
}
catch (InputMismatchException e)
{
System.out.println("请输入整数!");
start(num, count);
}
return -1;
}
//完整的猜数流程
public void guess(int num)
{
int count = 0;
count = start(num, count);
point = point(count);
System.out.println("当前得分: "+point);
}
public static void main(String[] args) {
System.out.println("1.开始 2.退出");
System.out.println("初始分数:"+point);
GuessNumber begin = new GuessNumber();
begin.judge01();
int num;
num = new Random().nextInt(99); //创建0-99的随机数
System.out.println("生成的随机数(测试):"+num); //展示所创建的随机数,用于测试
begin.guess(num);
do {
System.out.println("1.再来一次 2.退出");
begin.judge01();
num = new Random().nextInt(99);
System.out.println("生成的随机数(测试):"+num); //展示所创建的随机数,用于测试
begin.guess(num);
}while (choice != 2);
}
}
测试结果
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~