当前位置:文档之家› 猜数字小游戏

猜数字小游戏

《程序设计实践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<X则可以确定X在[Mid+1,R]之内,Y>X则可以确定X在[L, Mid-1]之内,Y=X,则表示已经猜出来了。

如果玩家的猜测数太大或太小,都作出提示,接着把计算器增加一,表示玩家做过一次猜测。

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();
}
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至10之间的整数");
continue;
}
if (yourGuess < 0 || yourGuess > 100) {
System.out.println("请输入一个1至100之间的整数:");
continue;
} 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");
}
}
}
七、使用说明与运行结果截图
使用说明:说明成功运行的相关配置(需要的用户名、密码;如何配置运行环境;相关资源文件等)。

如:运行程序,根据提示输入每回合题目数量;然后开始做题,题目数量是之前用户定义的数量,每道题目结束都会显示正确与否,错误还会显示正确答案;当指定的题目数量做完结束后,会显示最终成绩,成绩以整数显示。

运行结果截图:。

相关主题