约瑟夫生死游戏课程设计

约瑟夫生死游戏课程设计

ID:9851088

大小:118.50 KB

页数:12页

时间:2018-05-12

约瑟夫生死游戏课程设计_第1页
约瑟夫生死游戏课程设计_第2页
约瑟夫生死游戏课程设计_第3页
约瑟夫生死游戏课程设计_第4页
约瑟夫生死游戏课程设计_第5页
资源描述:

《约瑟夫生死游戏课程设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、第一章问题背景约瑟夫生死游戏是一款生死抉择的游戏,由于某种原因,需要在一群人中踢出一部分人,被踢出的人将会面临死亡的威胁,因此大家都不想成为那个被踢除的那个人,但是又必须踢出一些人才能保证其他人的安全,你的位置会影响你的生死,所以位置的选择很重要。12第二章系统分析2.1系统总需求如果有r个人,需要剔除w个人,让他们围成一个圈,由第一个人数起,依次报数,数到第s个人,便把他剔除,然后再从他的下一个人数起,数到第s个人,再将他剔除,直至剔除了w个人时停止,没剔除的则生还。2.2功能需求约瑟夫生死游戏能够精确的找到死亡

2、者的位置,并且能够灵活的确定剔除第几个人,以及要剔除多少人,并且能够对很多人的情况下迅速确定生者和死者的位置。整个游戏主要分为几个模块:队列初始化,入队,查找死亡位置,排序,生者位置的确定,输出死者位置。队列初始化:对队列中每个人进行初始化。入队:对每个人进行赋值,并且进行入队操作。查找死亡位置:通过一控制块控制入队,出队,从而找到死亡位置,并且把死亡位置保存到数组。排序:把死亡位置按从小到大进行排序,以便观看结果。生者位置的确定:通过已经确定的死亡位置来确定生者位置,并对生者位置进行输出。输出死者位置:对已排序的

3、死亡位置进行输出。2.3数据需求第i个人员信息=i-1;总人数;踢除第几个人;剔除人数;12第三章系统设计3.1系统体系结构约瑟夫生死游戏通过通过一控制块控制入队,出队,找到死亡位置,从而确定生者位置。主要包括确定死亡位置和确定生者位置。约瑟夫的软件结构如图3.1所示。约瑟夫生死游戏确定死亡位置确定生者位置图3.1系统结构3.2各子功能模块设计3.2.1确定死亡位置(1)功能:通过通过一控制块控制入队,出队,找到死亡位置,并保存死亡位置。(2)程序流程图:约瑟夫生死游戏的程序流程图如图3.2所示。12开始剔除人数是

4、否小于总死亡数是剔除人数加一入队,出队控制块符合进行入队,出队操作剔除,并保存剔除的位置结束否图3.2确定死亡位置进行判断3.2数据结构设计3.3.1员工信息数据结构设计人员信息包括每个人员位置对应的值,以及队头,队尾的位置。typedefstruct{DATATYPEdata[maxsize];//队中元素intfront,rear;//队头元素下标、队尾元素后面位置的下标}SEQQUEUE;12第四章系统实现4.1人机交互部件本系统的一个重要特点就是系统启动之后,同时显示主窗口,主窗口为可用,必须在主窗口中进行

5、赋值才可运行。输入与显示为:主要代码为://队列的插入for(i=0;i<=r-1;i++){temp=i;QueueIn(&game,temp);}//找出死亡位置,并保存到数组p[m]for(m=0;m<=w-1;){n=0;for(n=0;n

6、}if(m>=w)break;}//将死亡位置从小到大输出for(m=0;mp[j]){t=p[m];p[m]=p[j];p[j]=t;}}//找到生者位置并输出for(y=1;y<=r;y++){for(j=h;j<=w-1;){z=p[j];if(y!=z+1){printf("生者的位置:");printf("%d",y);break;}if(y==z+1){h++;if(h>=w-1)h=w-1;break;}}12}//输出死亡者

7、的位置for(m=0;m

8、3死亡的人数:4符合2输入人数:15数到第几个人则剔除:6死亡的人数:5符合表5.1.1输入与显示12结论本游戏是一款生死抉择的游戏,由于某种原因,需要在一群人中踢出一部分人,被踢出的人将会面临死亡的威胁,因此大家都不想成为那个被踢除的那个人,但是又必须踢出一些人才能保证其他人的安全,你的位置会影响你的生死,所以位置的选择很重要,本游戏就起到了一个找到死亡位

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。