猜数游戏设计报告含代码Word格式.docx

上传人:b****5 文档编号:16960512 上传时间:2022-11-27 格式:DOCX 页数:11 大小:222.67KB
下载 相关 举报
猜数游戏设计报告含代码Word格式.docx_第1页
第1页 / 共11页
猜数游戏设计报告含代码Word格式.docx_第2页
第2页 / 共11页
猜数游戏设计报告含代码Word格式.docx_第3页
第3页 / 共11页
猜数游戏设计报告含代码Word格式.docx_第4页
第4页 / 共11页
猜数游戏设计报告含代码Word格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

猜数游戏设计报告含代码Word格式.docx

《猜数游戏设计报告含代码Word格式.docx》由会员分享,可在线阅读,更多相关《猜数游戏设计报告含代码Word格式.docx(11页珍藏版)》请在冰豆网上搜索。

猜数游戏设计报告含代码Word格式.docx

七、附录(完整源程序清单)……………………………………………6

八、评阅意见……………………………………………………………10

参考书目………………………………………………………………10

《高级语言程序设计》课程设计

――猜数游戏

一、需求分析

1.获取随机数(根据玩家要可获得不同范围的随机数)。

2.对玩家输入的数字进行判断大小,给出提醒以便玩家进一步选择。

3.玩家猜中时给出所用时间和游戏水平的判断,给出是否继续的提示及判断。

4.游戏在于娱乐,因此需要一个人性化的界面。

二、总体设计

2.1主函数:

选择游戏等级(获取不同范围的随机数范围越大难度越大);

对玩家输入的数字进行判断和提示;

算出所用时间在玩家猜中时给出其所用时间,对其水平的判断和是否继续的提示;

对玩家要求判断执行。

2.2主界面显示:

游戏界面显示和必要提醒文字的输出。

2.3结果输出界面显示:

结果界面显示;

输出玩家所用时间和水平评价;

输出是否继续的文字提醒。

2.4简单等级随机数获取:

获取1到1000内的随机数。

2.5中等等级随机数获取:

获取1到2000内的随机数。

2.6困难等级随机数获取:

获取1到10000内的随机数。

系统模块图

三、详细设计

3.1主界面显示函数

功能描述:

游戏界面显示和必要提醒文字的输出

主界面显示流程图

3.2main函数

功能描述:

函数参数说明:

clock_tc_start,c_end;

分别用定义开始时间和终止时间。

f1接收获得的随机数。

f2接收玩家输入的数字。

ch接收玩家输入的选择字符。

time表示玩家所用时间。

s[]必要的提醒和输出字符串。

函数调用关系描述:

wd1();

调用主界面显示函数。

getf1();

getf2();

getf3();

调用获取不同范围的随机数函数。

wd2();

调用结果输出界面显示函数。

main函数流程图

3.3结果输出界面显示函数

结果输出界面显示流程图

3.4简单(中等,困难)等级随机数获取函数

time_tt;

定义时间变量。

srand((unsigned)time(&

t));

以系统时间为种子,初始化rand()。

rand()%1000;

获取0到999的随机数。

简单(中等,困难)等级随机数获取流程图

四、测试

1.在游戏开始输入等级选择字符时,如果输入a,b,c以外的字符游戏就会出现错误,此时随机数为0。

为了改正从而达到输入其他字符时从新提示要输入a,b,c。

我用了不常用的goto函数。

判断为其他字符时,函数从新回到最初。

2.开始时,用do,while函数做到了在一轮游戏过后输入y可以继续游戏,但没有做到输入n结束游戏,此时输入除y的字符都会终止。

我将要达到的目标分成了两步。

第一步,当输入除y,n外的字符时,再次输出游戏继续输y退出输n的提醒。

我用一个for(;

ch!

='

n'

&

y'

;

)的循环,只有当遇y或n时才能跳出循环,否则要继续输入选择。

第二步,为了实现输入n时终止程序,我将do,while函数放在循环for(;

)内,并在while后加入了语句if(ch=='

)break;

这样便做到了输入n时跳出循环继而终止了程序。

五、设计心得与总结

1.猜数游戏是计算机给出数字有玩家进行猜测,首先是要计算机给出数字而且是随机的。

怎样获得随机数以前的学习中并没有遇到过。

在网上找到了随机数获取函数rand(),当然开始并不会用这函数每次随机数产相同,然后去找资料了解到计算机产生的随机数是伪随机数。

原来每次产生随机数都要一个随机种子。

进一步查找资料我了解到可以将系统时间转化为种子这需要srand函数将系统时间转化,写成语句就是srand((unsigned)time(&

最后成功获得了随机数。

2.游戏需要一个界面,这在以前的学习也未有遇到。

和随机数获取一样先去网上找但没有获得进展,无奈求助同学。

我选择了用矩形图形做界面。

在原界面上覆盖上矩形图形做界面。

3.作为一个游戏,界面上的文字要简单,每次的提醒要显眼。

为了做到这一点我先将原来的清掉然后再输出,这用到了clrscr();

语句。

4.最初程序完成很不完善,有许多漏洞需要改正。

比如,选择时输入规定字符之外的字符怎么办。

怎样做到只输入y,n来断定游戏是否继续。

这些在不断地调试中发现的。

(这些在标题四中有解释这里不多做解释)。

看到这个题目时意识到这里有没学过的东西,通过自己找资料问同学做成一个程序我有了一种小小的成就感。

做程序也好,其他的什么也好总会遇到自己不懂得,没接触过的。

这是一个挑战,通过自己一步步的努力完成时,是一种很大的进步不只是技术上的进步。

六、用户使用手册

6.1系统简介与功能介绍:

该程序基于win-tc编写,选用win-tc是界面设计所需。

随机产生一个数字,可根据玩家选择给出不同范围的数字。

玩家输入所猜数字时给出与真实数字的大小比较。

在玩家猜中时,可给出其所用时间,并给出评价。

最后,游戏的结束与继续可由玩家控制。

6.2用户操作说明、注意事项:

1.游戏开始选择游戏等级。

2.输入所猜数字,根据提示输入,直到输入与所给随机数相同。

3.猜中时系统会给出您所用时间和对您的评价和是否继续的提示,选择是否继续。

注意:

在游戏过程中猜数阶段只能输入数字,输入其他字符不予判断(这一点在游戏开始时会有提示文字)。

玩家在玩游戏时要注意看提示文字。

七、附录(完整源程序清单)

#include<

stdio.h>

/*准输入输出头文件*/

time.h>

/*时间函数*/

intf1,f2;

charch,*s[]={"

GUESSTHEDIGITALGAME"

"

GOODLUCK!

"

PLAYAGAIN(y/n)"

YOURRESULTS:

"

PLEASESELECTTHECLASS:

A,B,C(Simple=A,Medium=B,Difficulty=C)\n"

(Onlyallowedtoenternumbers)\n"

};

wd1()

{

textbackground(6);

clrscr();

window(25,3,55,4);

textbackground

(1);

textcolor(12);

cputs(s[0]);

/*主界面背景设置*/

window(25,5,55,6);

textbackground

(2);

textcolor(15);

cputs(s[1]);

window(25,6,55,16);

textbackground(4);

}

wd2()

window(15,17,65,19);

/*结果输出界面*/

}

getf1()

time_tt;

/*系统时间定义*/

srand((unsigned)time(&

/*将系统时间强行转化作为随机种子*/

f1=1+rand()%1000;

/*获取1-1000内的随机数*/

getf2()

srand((unsigned)time(&

f1=1+rand()%2000;

/*获取1-2000内的随机数*/

getf3()

{

f1=1+rand()%10000;

/*获取1-10000内的随机数*/

main()

clock_tc_start,c_end;

/*时间函数*/

doubletime;

for(;

{

do

/*清屏*/

wd1();

cputs(s[4]);

cputs(s[6]);

lp1:

ch=getch();

if(ch=='

a'

)/*选择困难等级*/

cprintf("

Simple:

Pleaseenterthenumber\n"

);

printf("

%d"

f1);

}

elseif(ch=='

b'

getf2();

Medium:

c'

getf3();

Difficulty:

else

gotolp1;

/*在输入错误时重回输入*/

c_start=clock();

/*开始计时*/

while

(1)/*对玩家输入的数字进行地判断*/

scanf("

&

f2);

/*输入所猜数字*/

if(f1==f2)/*所猜数字与随机数比较*/

congratulations!

\n"

c_end=clock();

/*结束计时*/

break;

elseif(f2<

f1)

little\n"

continue;

/*输入不匹配时重输*/

big\n"

time=(double)(c_end-c_start)/18.55;

/*计算时间*/

/*结果输出界面显示*/

cputs(s[3]);

/*输出提示*/

if(time>

60.000000)printf("

Notgood!

/*判断评估*/

elseif(time<

30.000000)printf("

Good!

elseif(time>

30.000000||time<

50.000000)printf("

General\n"

printf("

TIME:

%.2fseconds"

time);

cputs(s[2]);

/*输出提示*/

/*接收控制*/

)/*继续玩游戏与否的判断*/

cputs(s[5]);

}while(ch=='

/*遇y结束*/

/*遇n结束*/

八、评阅意见

教师签名:

年月日

参考书目

[1]谭浩强,《C程序设计》,清华大学出版社,北京,2005年7月第3版

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1