猜数字游戏的分析与实现课案.docx
- 文档编号:9028782
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:25
- 大小:151.52KB
猜数字游戏的分析与实现课案.docx
《猜数字游戏的分析与实现课案.docx》由会员分享,可在线阅读,更多相关《猜数字游戏的分析与实现课案.docx(25页珍藏版)》请在冰豆网上搜索。
猜数字游戏的分析与实现课案
合肥工业大学计算机与信息学院
课程设计报告
设计题目:
猜数字及生命游戏
学生姓名:
李挺
专业:
电子信息工程
班级:
13级1班
学号:
2013211732
指导教师:
于磊
完成日期:
2014年7月9日
目录
一游戏说明
二总体设计
三程序代码
四运行结果
五附录文档
一游戏说明(猜数字)
1使用说明
(1)开始功能键选择
(2)系统将提交的数与它自动产生的数进行比较,输出结果“*A*B”形式。
其中A代表数字正确相应位置也正确,B代表数字正确但位置不正确。
如:
1A3B表示游戏者有1个数字的位置正确且数值也正确,除此以外,游戏者还猜对了3个数字,但位置不对,即游戏者已经猜出4位数据,但有3个数据位置不对
2程序说明书
(1)程序的功能说明:
猜数字游戏是一个运行在Windows平台下的小型游戏软件,依据猜数字游戏的基本规则,给用户进行成绩排行,并可以随着玩家的游戏记录进行更新。
游戏用户可以选择开始游、排行榜查看、帮助等主要功能。
当用户选择开始游戏时,系统会让用户逐次猜数字,用户每次猜数字后系统会给出本次猜数字的结果提示,如位置和数字都正确的数字个数、数字正确但位置不正确的数字个数。
如果用户猜数字的次数超过10次,则提示用户游戏失败,如果在10次之内猜出4个数字和正确的顺序,则提示用户猜数字成功,并到排行榜中进行比较,如果排名在前一名,则计入排行榜中,以便其他用户查看。
在排行榜查看功能中,用户可以查看当前的游戏排行,如有新的记录产生,则插入到排行榜中,并把排行榜中位次最末的记录挤出排行榜。
在帮助模块,用户可以查看游戏规则,当熟悉规则后可以退出帮助模块。
3软件可以实现的基本功能
(1)游戏区:
玩家可以在游戏区逐次猜数字,系统给出玩家每次猜数字后的提示,包括数值、位置均正确的数字个数和数值正确但位置不正确的数字个数。
(2)查看排行榜:
玩家可以查看当前排行榜中的排名顺序,从而确定自己的游戏目标。
排行榜的查看按一定顺序显示给用户,便于查看。
(5)帮助:
玩家通过帮助功能了解游戏规则和排行榜设置规则。
(4)清除排行榜:
玩家可以选择清除排行榜功能,使得排行榜上的玩家姓名和玩家游戏记录从系统中清除,只留下系统默认的玩家名(player)和系统默认记录10次。
二总体设计
1要求
(1)要求使用多文件方式实现设计;
(2)要求在各个文件内实现结构化设计;
(3)每个模块作为一个单独的文件。
2文件及函数组成
源文件
函数名或其他成分
功能
record.h
ASK
宏定义
结构声明
结构声明
库函数及函数原型声明
record.h
intchoose_level
设置游戏等级
voidshow_explain
输出游戏说明
record.h
boolcheck_num
检查数据
voidshow_tiptop
输出最佳排行
record.h
voidnew_game
开始游戏中心
voidget_num
获取系统随机数字
Game_in_out
获取游戏者数据和输出结果
Inttime
时间控制
Game_result
游戏结果处理输出
record.h
intmain
主函数
voiddisplay()
选择菜单
intchoose_menu
处理菜单
三.程序代码
1主体游戏程序
usingnamespacestd;
voidrand_num(int[]);
voidget_num(int[],int);
boolcheck_num(int[]);
intguess_num(int);
voidgoal(int,int,int);
voidchoose_menu();
voidnew_game();
voidshow_tiptop();
voidshow_explain();
voidclean_data();
voiddisplay();
intchoose_level();
voidmain(){
choose_menu();
}
#include
#include
#include
#include
#include
#include
#include
usingnamespacestd;
#pragmawarning(disable:
4996)
structdata{
intgoal;
charname[20];
};
fstreamiofile;
voidrand_num(intb[]){
inttemp;inttemp2;
intc[10]={0};
for(inti=0;i<10;i++)
c[i]=i;
srand((unsigned)time(0));
for(intj=0;j<4;j++){
temp=rand()%(10-j)+j;
temp2=c[temp];
c[temp]=c[j];
c[j]=temp2;
b[j]=c[j];
}
for(intk=0;k<4;k++)
cout<
cout< } voidget_num(intb[],intk) { cout<<"\t\t\t请输入你猜的数字,还剩下"< cout<<"\t\t\t\t"; for(inti=0;i<4;i++) cin>>b[i]; } boolcheck_num(intb[]) { for(inti=0;i<4;i++){ if(b[i]<0||b[i]>9){ cout<<"\t\t\t输入错误,请重新输入! \n"; returnfalse; } } returntrue; } intchoose_level(){ intx; cout<<"\n\n\n\n"; cout<<"\t****************************************************************\n"; cout<<"\t****************************************************************\n"; cout<<"\t\t\t1.高级\t2.中级\t3.低级\n"; cout<<"\t\t\t\t"; cin>>x; while(x>2&&x<1){ cout<<"\t\t\t输入有误,重新输入! \n"; cout<<"\t\t\t\t"; cin>>x; } if(x==1)return1; if(x==2)return2; if(x==3)return3; } intguess_num(intlevel){ system("cls"); intA;intB; inta[4]={0}; intb[4]={0}; rand_num(a); inttimes=0; for(intk=level+7;k>0;k--){ get_num(b,k); while(! check_num(b)){ k--; get_num(b,k); }; A=B=0; for(inti=0;i<4;i++){ if(a[i]==b[i])A++; for(intj=0;j<4;j++){ if(i! =j&&a[i]==b[j])B++; } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 游戏 分析 实现