java猜数程序_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);

}

}

测试结果

67dc5a17158077bad13242d5554c8591.png

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值