杀人游戏文档格式.docx
《杀人游戏文档格式.docx》由会员分享,可在线阅读,更多相关《杀人游戏文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
该职工管理系统系统是在VisualC++6.0集成环境下和WindowsXP操作系统平台下开发的。
1.3开发语言
该职工管理系统使用C语言开发,C语言是一种计算机程序设计语言。
它既具有高级语言的特点,又具有汇编语言的特点。
它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
2.设计方案
2.1程序执行流程
以五人参与游戏为例,假设A选择1号为,每隔3个人杀掉一个人,过程如下:
(1)刚开始位置
(2)第一次三号位被杀
(3)转到一号位,一号位是A,转到下一个,2号位被杀
(4)因为三号以被杀,从四号还是转,转到一号位跳过,四号被杀
(5)剩余五号位,警察应该选择五号位与杀手A对决
2.2数据结构设计
1.每个玩家的数据结构设计,应包括座位号,以及状态。
2.在游戏进行时,考虑到第M个事杀手或者已死亡,需要计数器加一。
于是设计动态数组用来作为玩家,存储座位号和状态,如下:
typedefstruct{
intlength;
//length待指N
int*flag;
//flag为1,表示为未被杀。
为0表示被杀。
2表示为杀手
int*seat;
//seat用于保存座位序号
}Player;
2.3函数功能设计
1、初始化
2、进行杀人过程
3、被杀者的状态
4、判断是否跳过
3.方案实施
3.1初始化函数
intInitPlayer(Player&
Lp,intn)//初始化
{
Lp.flag=(int*)malloc(n*sizeof(int));
Lp.seat=(int*)malloc(n*sizeof(int));
if(!
Lp.flag||!
Lp.seat)exit(-2);
Lp.length=0;
return1;
}
3.2进行杀人过程
每杀死一个人,便有一人退出,于是首先考虑到递归算法,初步设计递归函数如下:
intKillMan(Player&
Lp,intm,inta,intdead,inttemp)
//intN,inta,intm,intdeadN,a,m分别与main中定义照应,
{
if(temp>
2)//dead表示当前被杀死的人座位号
{
dead=DeletePlayer(Lp,m+dead);
//DeletePlayer(Lp,m+dead)为杀人函数
temp--;
//每杀死一人,计数器temp就减1.
KillMan(Lp,m,a,dead,temp);
}
Else//表示除了杀手外只剩下警察,结束递归
for(intn=0;
n<
Lp.length;
n++)
{
if((Lp.flag[n]==1)&
&
(Lp.seat[n]!
=a))
{
returnn;
//返回警察应该选择的座位号。
}
}
3.3被杀者的状态
递归设计好后,开始设计DeletePlayer()函数,考虑到第M个人可能是杀手或者已死亡,于是设计跳过函数JumpNext()函数,对第M号进行判断。
intDeletePlayer(Player&
Lp,inti)//杀死后节点flag=0;
i=JumpNext(Lp,i);
//检测i是否已经被杀,是否是a,是否大于N。
Lp.flag[i-1]=0;
//座位号码为i,设置其flag为0,表示已死亡
printf("
Player%dwasdead!
\n"
Lp.seat[i-1]);
returni;
//返回当前被杀死的座位号。
以进行下一轮。
3.4判断是否跳过
杀手杀人函数设计完成后着手设计跳过函数JumpNext(),要跳过杀手,跳过已死亡玩家,由于再设计递归时,采用的是圆圈循环结构,所以要对座位号进行判断,因为当前死亡座位号加上间隔M,可能大于总人数。
所以设计函数如下:
intJumpNext(Player&
Lp,inti)
while(i>
Lp.length)//首先对当前死亡座位号+M判断,大于总人数则
{//减去总人数,直到小于总人数。
i=i-Lp.length;
while(Lp.flag[i-1]==0||Lp.flag[i-1]==2||i>
Lp.length)
//判断是否已死亡,或者是杀手,则+1,
{
i++;
if(i>
Lp.length)//如果+1后大于总人数,则减去总人
i=i-Lp.length;
//数,继续判断,直到符合规定。
//返回处理后的i值
4.结果与结论
4.1出入初始状态
4.2杀人过程及结果
5.收获与致谢
在本次课程设计中,独立完成了杀人游戏算法与算法实现等模块设计,对算法使用有了更深一层次的理解。
经过调试实现了以上模块的功能。
该课程设计还有很多不足之处,例如算法结构不够简洁。
本次课程设计之中,遇到很多问题,在所有成员的努力下,把问题一一解决,共同完成了一个杀人游戏实现过程,同时也提升每个成员自身解决问题与他人合作的能力。
6.参考文献
[1]《C程序设计教程》谭浩强编著(清华大学出版社2008)
[2]《算法与分析》(C语言版)严蔚敏吴伟民编著(清华大学出版社2007)
[3]《C程序设计(课程设计)》刘振安刘燕君编著(机械工业出版社2004.9)
7.附件
killman.rar
指导教师评语:
1、课程设计报告:
a、内容:
不完整□完整□详细□
b、方案设计:
较差□合理□非常合理□
c、实现:
未实现□部分实现□全部实现□
d、文档格式:
不规范□基本规范□规范□
2、出勤:
全勤□缺勤次
3、答辩:
a、未能完全理解题目,答辩情况较差□
b、部分理解题目,部分问题回答正确□
c、理解题目较清楚,问题回答基本正确□
d、理解题目透彻,问题回答流利□
课程设计报告成绩:
,占总成绩比例:
50%
课程设计其它环节成绩:
环节名称:
出勤,成绩:
20%
答辩,成绩:
30%
总成绩:
指导教师签字:
年月日