题目.md 1.9 KB

第 8 题:构造方法 + Random + 方法——猜数游戏(面向对象版)⭐⭐⭐⭐

包名:p08_guessgame

将之前的猜数字游戏改造为面向对象版本,使用构造方法初始化游戏。

游戏类(类名自拟,置于 p08_guessgame 包下)

私有属性:

属性 类型 说明
target int 目标数字(系统随机生成)
maxRange int 最大范围(如 100 表示 1~100)
attempts int 已猜次数

构造方法:类名(int maxRange) —— 在 1 ~ maxRange 之间用 Random 生成目标数字,并将 attempts 初始化为 0

方法:

方法 说明
guess(int num) 判断猜测结果,返回 String:"猜对了!" / "大了,再小点" / "小了,再大点"
getAttempts() 返回已猜次数(int)

测试类要求(测试类类名自拟,置于 p08_guessgame 包下)

  1. 创建游戏对象,范围 1~100
  2. 使用 Scanner 让用户循环输入猜测数字
  3. 调用 guess() 方法判断,直到猜对为止
  4. 猜对后输出总共猜了多少次

示例运行效果:

======= 猜数游戏(1~100) =======
请输入你猜的数字:50
小了,再大点
请输入你猜的数字:75
大了,再小点
请输入你猜的数字:62
小了,再大点
请输入你猜的数字:68
猜对了!
恭喜你!一共猜了 4 次

💡 提示:

  • 构造方法中使用 Random 的 nextInt(maxRange) + 1 生成 1~maxRange 的随机数
  • guess() 方法中每次调用时 attempts 自增 1
  • 测试类中使用 while(true) 循环,猜对时 break