题目要求:

1.9 Guess

简单猜数值游戏。

编写⼀个名为Guess的类。在其构造⽅法⽤系统时间对随机数⽣成器种⼦化 以防⽌每次⽣成的随机数序列相同(类java.util.Random);成员⽅法Result judge(int value)对⽤ 户从键盘上输⼊的整数值进⾏判断并返回结果。

编写Driver类,在⼊⼝点main()中实例化Guess的⼀ 个对象,提示⽤户输⼊⼀个整数。具体要求如下:

1. Guess的构造⽅法接收两个参数:bound,表示⽣成随机数的上界,默认值为10,即所⽣成 的整数在范围[0, 10)中(Random的int nextInt(int bound)⽅法);limit,表示允许⽤户猜测的 最⼤次数,默认值为10;在构造⽅法中⽤系统时间(System. currentTimeMillis()⽅法)作为随 机数⽣成器的种⼦;

2. 在成员⽅法void start()中,⽣成随机数并将其保存在成员变量value中,并将表示当前已猜 测次数的成员变量count复位;

3. 在成员⽅法Result judge(int value)中,递增⽤户已猜测的次数count,对⽤户所输⼊的整数 进⾏判断,并将判断结果以枚举Result(位于Guess类中)er 返回(EQUAL,value == this.value;LESS,this.value > value;GREAT,this.value < value;EXCEED,count >= limit)。

4. 在Driver类中,编写⼀个名为void guess(Guess guess)的⽅法,提示⽤户输⼊⼀个整数, 并调⽤Guess的judge()成员⽅法对⽤户所输⼊的整数进⾏判断,根据其返回值在终端(控制台) 上输出:

① 正确(EQUAL):“congratulation!”

② 太⼩(LESS):“Sorry,too small,remaining:XXX”

③ 太⼤(GREAT):“Sorry,too large,remaining:XXX”

④ 超限(EXCEED):“Sorry,exhausted,value:YYY” 其中XXX表示剩余的猜测次数(提示:在Guess中提供成员⽅法以访问其私有数据成员)⽽ YYY表示未被猜中的随机值。在太⼩或太⼤情况下,允许⽤户继续猜测。

5. 在main()⽅法中创建Guess的⼀个对象,在⼀个循环中,开始游戏,并在每⼀轮游戏之后询 问⽤户是否继续,如果⽤户回答否,游戏结束。

Java代码实现:

import java.util.Random;
import java.util.Scanner;public class Driver {public static void main(String[] args) {Guess g = new Guess(10,10);Scanner sc = new Scanner(System.in);boolean isFlag = true;while(isFlag){g.start();System.out.println(g.getValue());guess(g);System.out.println("是否继续?Y/N");String a = sc.nextLine();if(!a.equals("Y")){isFlag = false;}}System.out.println("游戏结束");}public static void guess(Guess guess){int value;String a = new String();while(true){System.out.println("请输入一个整数:");Scanner sc = new Scanner(System.in);value = sc.nextInt();a = guess.judge(value).getResultDesc();if(a.equals("0")){   //字符串用equals进行判断System.out.println("正确(EQUAL):“congratulation!" + "”");break;}if(a.equals("1")){System.out.println(guess.getLimit());System.out.println(guess.getCount());System.out.println("太⼩(LESS):“Sorry,too small,remaining:" + (guess.getLimit()-guess.getCount()) + "”");}if(a.equals("2")){System.out.println(" 太⼤(GREAT):“Sorry,too large,remaining:" + (guess.getLimit()-guess.getCount()) + "”");}if(a.equals("3")){System.out.println(" 超限(EXCEED):“Sorry,exhausted,value:" + guess.getValue() + "”");break;}}}}class Guess{private int bound;private int limit;private int value;private long t;private int count;public Guess(int bound, int limit) {this.bound = bound;this.limit = limit;t = System.currentTimeMillis();}public int getValue() {return value;}public void setValue(int value) {this.value = value;}public int getCount() {return count;}public void setCount(int count) {this.count = count;}public int getLimit() {return limit;}public void setLimit(int limit) {this.limit = limit;}public void start(){Random rd = new Random(t);this.value = rd.nextInt(bound);count = 0;}public Result judge(int value){if(count >= limit){count++;return Result.EXCEED;}else if(value == this.value){count++;return Result.EQUAL;}else if(this.value > value){count++;return Result.LESS;}else if(this.value < value){count++;return Result.GREAT;}return Result.EQUAL;}enum Result{EQUAL("0","congratulation!" ),LESS("1","Sorry,too small,remaining:" ),GREAT("2","Sorry,too large,remaining:" ),EXCEED("3","Sorry,exhausted,value:");private final String ResultName;private final String ResultDesc;private Result(String resultDesc,String resultName) {ResultName = resultName;ResultDesc = resultDesc;}public String getResultName() {return ResultName;}public String getResultDesc() {return ResultDesc;}}}

Java 上机题 1.9 Guess 简单猜数值游戏相关推荐

  1. python猜数游戏流程_python简单猜数游戏实例

    本文实例讲述了python简单猜数游戏.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python import random number = random.randint ...

  2. 猜数字游戏python程序_python实现的简单猜数字游戏

    本文实例讲述了python实现的简单猜数字游戏.分享给大家供大家参考.具体如下: 给定一个1-99之间的数,让用户猜数字,当用户猜错时会提示用户猜的数字是过大还是过小,知道用户猜对数字为止,猜对数字用 ...

  3. 简单猜数字游戏Java实现

    问题 设计一个猜数字游戏,系统随机产生一个100以内的整数,然后由玩家猜测该数字,如果没猜中,系统提示玩家数字过大或过小,玩家根据提示继续猜,如果五次均没有猜中,游戏自动结束. 原理很简单,直接上代码 ...

  4. java上机题四取三排列_Java练习题

    Java的问答题. 一. 基本 1.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以,限制:一个文件中只能有一个public类,并且此public类必 ...

  5. 猜数字java程序设计分析_JAVA程序设计课程设计-猜数字游戏设计

    JAVA程序设计课程设计-猜数字游戏设计 课 程 设 计 报 告课程设计名称 Java 程序设计 专 业 计算机科学与技术 班 级 2 班 学 号 08030212 姓 名 指导教师 成 绩 2011 ...

  6. Java学习小程序(5)猜数字游戏

    猜数字游戏,游戏规则:程序内置一个1到1000之间的数字作为猜测的结果,由用户猜测此数字.分别用 while 和 do-while 语句实现. import java.util.Scanner; pu ...

  7. java做小窗体_java实现简单窗体小游戏----球球大作战

    java实现简单窗体小游戏----球球大作战 需求分析 1.分析小球的属性: ​坐标.大小.颜色.方向.速度 2.抽象类:Ball ​设计类:BallMain-创建窗体 ​BallJPanel-画小球 ...

  8. java随堂练习06,编写猜字游戏

    /** 猜数字游戏 随机生成一个100以内的数,猜数字游戏: 从键盘输入数,如果大了提示,大了,如果小了,提示小了,如果对了,就不再猜了,并统计一共猜了多少次? 提示:随机数 import java. ...

  9. C语言实现1到100简单猜数字游戏

    猜数字游戏就是系统随机生成一个数字,我们来猜的游戏. 这里我们约定 1表示玩游戏,0表示退出游戏. 那么怎么才能让系统随机生成一个数字呢?这里我们想到一个函数:rand()函数. 通过查阅MSDN软件 ...

最新文章

  1. C#编码实践:使用委托和特性调用指定函数
  2. EFMVC - ASP.NET MVC 3 and Entity Framework 4.1 Code First 项目介绍
  3. Spring Cloud构建微服务架构-Hystrix依赖隔离
  4. 华为eNSP模拟器学习(一)
  5. 程序员深夜用Python跑神经网络,只为用中二动作关掉台灯
  6. 阿里java高级工程师面试100题(建议收藏)
  7. 8.2.4临时表和正式表
  8. linux如何配置vnc服务器,Linux下VNCServer配置详解
  9. vue 分模块打包 脚手架_Vue面试官最爱的底层源码问题,你可以这样回答!
  10. C++自由存储空间:new
  11. 深度学习(1)---2017年深度学习NLP重大进展与趋势
  12. linux配置conf_如何使用mssql-conf和其他可用工具在Linux上配置SQL Server 2017
  13. ”Bug“一词的来源
  14. 七年切图仔如何面试大厂web前端?(沟通软技能总结)
  15. 苹果手机上网速度慢_手机为什么下载速度很慢(揭晓手机下载速度慢的原因)...
  16. 2021年胡润中国百富榜研究报告
  17. AD19解决复制粘贴后Designator出现问号的问题——需要更改设置
  18. 情侣婚前同居,男人吃亏还是女人吃亏?
  19. USTCOJ 1382 毛毛虫
  20. 计算机的基础操作知识试题,[计算机基本操作知识]计算机操作系统基础知识试题...

热门文章

  1. 如何利用电位器控制舵机
  2. 【Audio音频兴趣拓展】麦克风阵列_阵列结构
  3. LBM模拟方法学习篇1:安装Xshell和Xftp
  4. baocms伪静态_BAOcms7.0 O2O本地生活服务系统钻石版源码 无限制版 功能强大
  5. 【SpringBoot整合缓存】-----Redis缓存篇
  6. OCI,CRI,CRI-O,Containerd 名词解释
  7. Arduino SimpleFOC库-004-BLDC 电机配置
  8. 优秀开源产品推荐:Tpflow工作流引擎
  9. 《毛毛虫组》【Alpha】Scrum meeting 2
  10. 令老罗忏愧的工匠心精品:联想ZUK Edge