1 / 11
文档名称:

约瑟夫生死游戏课程设计.doc

格式:doc   大小:58KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

约瑟夫生死游戏课程设计.doc

上传人:wxc6688 2019/12/25 文件大小:58 KB

下载得到文件列表

约瑟夫生死游戏课程设计.doc

文档介绍

文档介绍:约瑟夫生死游戏课程设计第一章问题背景约瑟夫生死游戏是一款生死抉择的游戏,由于某种原因,需要在一群人中踢出一部分人,被踢出的人将会面临死亡的威胁,因此大家都不想成为那个被踢除的那个人,但是又必须踢出一些人才能保证其他人的安全,你的位置会影响你的生死,所以位置的选择很重要。,需要剔除w个人,让他们围成一个圈,由第一个人数起,依次报数,数到第s个人,便把他剔除,然后再从他的下一个人数起,数到第s个人,再将他剔除,直至剔除了w个人时停止,没剔除的则生还。,并且能够灵活的确定剔除第几个人,以及要剔除多少人,并且能够对很多人的情况下迅速确定生者和死者的位置。整个游戏主要分为几个模块:队列初始化,入队,查找死亡位置,排序,生者位置的确定,输出死者位置。队列初始化:对队列中每个人进行初始化。入队:对每个人进行赋值,并且进行入队操作。查找死亡位置:通过一控制块控制入队,出队,从而找到死亡位置,并且把死亡位置保存到数组。排序:把死亡位置按从小到大进行排序,以便观看结果。生者位置的确定:通过已经确定的死亡位置来确定生者位置,并对生者位置进行输出。输出死者位置:对已排序的死亡位置进行输出。=i-1;总人数;踢除第几个人;剔除人数;,出队,找到死亡位置,从而确定生者位置。主要包括确定死亡位置和确定生者位置。。(1)功能:通过通过一控制块控制入队,出队,找到死亡位置,并保存死亡位置。(2)程序流程图:。3开始剔除人数是否小于总死亡数是否入队,出队控制块剔除,并保存符合进行剔除的位置判断进行入队,,以及队头,队尾的位置。typedefstruct{DATATYPEdata[maxsize];//队中元素intfront,rear;//队头元素下标、队尾元素后面位置的下标}SEQQUEUE;,同时显示主窗口,主窗口为可用,必须在主窗口中进行赋值才可运行。输入与显示为:主要代码为://队列的插入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<s-1;n++){QueueFront(game,&temp);QueueOut(&game);QueueIn(&game,temp);}if(n==s-1){5QueueFront(game,&temp);QueueOut(&game);p[m]=temp;m++;}if(m>=w)break;}//将死亡位置从小到大输出for(m=0;m<w-1;m++)for(j=m+1;j<w;j++){if(p[m]>p[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\n",y);break;}if(y==z+1){h++;if(h>=w-1)h=w-1;break;}}6}//输出死亡者的位置for(m=0;m<w;m++){printf("死亡者的位置:");printf("%d\n",p[m]+1);}}:能在主界面上灵活输入游戏人数、剔除第几个人、剔除人数,能基本适应数据的任意输入,具有广泛性,以及实用性。,出队,找到死亡位置,并保存死亡位置,这样,生者的位置就能通过死者的位置确定。::10数到第几个人符合1则剔除:3死亡的人数:4输入人数:152数到第几个人则剔除:6符合死亡的人数:,由于某种原因,需要在一群人中踢出一部分人,被踢出的人将会面临死亡的威胁,因此大家都不想成为那个被踢除的那个人,但是又必须踢出一些人才能保证其他人的安全,你的位置会影响你的生死,所以位置的选择很重要,本游戏就起到了一个找到