猜数字小游戏

  • 格式:doc
  • 大小:754.00 KB
  • 文档页数:9

下载文档原格式

  / 9
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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,如果YX则可以确定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();

}