猜数字小游戏
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《程序设计实践I》题目:猜数字小游戏
学校:
学院:信息学院
班级:计科(高职)
学号:
姓名:
2014 年 9 月 20 日
实践一基础程序设计实践
一、实践目的
1、掌握基本输入输出。
2、掌握方法定义与调用,理解参数传递方式。
3、掌握数组的声明、定义与初始化,数组的处理。
4、掌握数组作为方法参数和返回值。
二、实践要求
利用方法、数组、基本输入输出等Java基础知识,给出所选项目的基本设计与实现。
三、项目需求
所选项目名称:猜数字小游戏
功能要求:该程序用图形界面实现下面功能:用计算机产生一个100以内的随机数,游戏者进行猜数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜对为止。游戏结束后给出评语并计算出玩家所用的时间与所猜的次数。
四、项目设计方案
1.随机数的获取:玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。
2 .输入输出模块:对玩家输入的数字进行判断和提示。如果玩家输入的不是系统要求的数字,系统将提示您,您输入的不是数字请重新输入.。如果玩家输入的数字与随机生成数相比较,比随机生成数小.系统提示您,数字太小请您重新输入。如果玩家输入的数字与随机生成数相比较,比随机生成数大.系统提示您,数字太大请您重新输入。
3 .判断模块:算出所用时间在玩家猜中时给出其所用时间,系统给出对其水平的判断和是否继续的提示;对玩家要求判断执行。
4 .自动计数模块:系统根据您猜数字的次数,自动计数。
5 .结果输出模块:直到用户猜到数字为止,提示信息是否继续猜数字,如果继续将进入下一次游戏,如果退出将退出游戏系统.
猜数字小游戏
计时模块数值比较模块
数值输入输出模块
五、关键算法与技术实现
游戏随即给出一个0-100(不包括0和100)的数字,然后让你猜是什么数字。你可以随便猜一个数字,游戏会提示太大还是太小,从而缩小结果范围。经过几次猜测与提示后,最终退出答案。在游戏过程中。记录你最终猜对时所需要的次数。游戏结束后公布结果。
public class Zu_guess {
public static void main(String[] args) {
System.out.println("欢迎进入猜数字游戏!"+ "\n"
+ "请输1个入0到100之间的正整数:" );
Zu_guess ch = new Zu_guess();
ch.guess();
}
public void guess() {
int realNumber = 0;// 电脑给出的数字。
int yourGuess = 0;// 你猜的数字。
Random rand = new Random();
realNumber = rand.nextInt(100) + 1;
long startTime = System.currentTimeMillis(); // 获取开始时间
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));// 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
while (yourGuess != realNumber) {
try {
yourGuess = Integer.parseInt(br.readLine());
} catch (Exception e) {
System.out.println("请输入一个1至100之间的整数");
continue;
在if-else语句中,如果玩家输入不合法,提示以后用continue语句从头重新执行循环语句,等待玩家输入。从而,guess变量一定包含一个合法的整数,之后对玩家输入的整数尽心判断。
if (yourGuess < 0 || yourGuess > 100) {
System.out.println("请输入一个1至100之间的整数:");
continue;
二分法:如果已知X在[L,R]之内,那么令Y=(L+R)/2,如果Y
else if (yourGuess > realNumber) {
System.out.println("您猜大了再来,加油哦!!!");
} else if (yourGuess < realNumber) {
System.out.println("您猜小了再来,要继续努力哦!!!");
}
long endTime = System.currentTimeMillis(); // 获取结束时间
if (yourGuess == realNumber) {
System.out.println("恭喜您猜中了!!!" + "\n" + "程序运行时间: "
+ (endTime - startTime) / 1000 + "s"); }
六、完整源码
import java.util.*;
import java.io.*;
public class Zu_guess {
public static void main(String[] args) {
System.out.println("欢迎进入猜数字游戏!"+ "\n" + "请输入1个0到100之间的正整数:" );
Zu_guess ch = new Zu_guess();
ch.guess();
}