亲宝软件园·资讯

展开

Java猜数程序 Java实现猜数程序

不要做码农呀 人气:0

用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);
  }
}

测试结果

加载全部内容

相关教程
猜你喜欢
用户评论