c语言报告五子棋
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
青岛理工大学
《C语言程序设计》
题目游戏五子棋
指导教师:李兰
姓名:王鹏
学号:200907127
班级:计算094
专业:计算机科学与技术
地点:二号实验楼第六机房
时间: 6.28 至7.1
一、内容
游戏五子棋
在这个小游戏中,实现了两人对战的游戏模式,没有添加禁手规则,另外考虑到落子时的可能失误,就添加了悔棋工具,游戏过程中可以进行游戏存档,进入悔棋和存档的方法为将光标移动到已有子的位置,敲一下落子键即可。下次游戏时候可以进入存档界面然后选择读取游戏存档即可继续玩上次的游戏。在游戏时自动计算双方各胜几局,平几局。
按键控制一号玩家:
上:w 下:s 左: a 右 : d 落子: f
二号玩家:
上:I 下:k 左: j 右: l 落子: h
二、上机环境
操作系统:Windows 98/XP/Win 7
开发工具:VC++6.0
三、函数调用关系图
四、各函数功能说明
对每个函数功能加以说明,说明该函数主要实现了什么内容。
1 int main() 主函数
2 system(“color 5a”) 控制台前景、背景颜色设置
3 system(“cls”) 清屏
4 Printsjm(void) 输出游戏首界面
5 start(void) 界面初始化
6 print(void) 界面刷新
7 check(void) 检测是否有一方赢棋
8 checkheqi(void) 检测是否和棋
9 zq(int,char (*p)[],char (*p)[]) 走棋落子
10 huiqi(char (*p)[]) 悔棋
11 jilu(char (*p)[]) 记录上次落子前的界面
12 cundang(void) 存储游戏进度
13 duqu(void) 读取游戏进度
14 fuzhi(void) 保存临时界面
15 huifu(void) 恢复临时界面以实现光标移动
16 newdata(void) 数据刷新
五、算法描述或流程图
system(“color 5a”)和system(“cls”) 只需要调用
/*输出游戏首页*/
/*原样输出即可*/
void Printsjm()
{
printf(" * * * * * * * * * * * * * * * 游戏名称* * * * * * * * * * * * * * **\n");
printf(" * * * * * * * * *\n");
printf(" * * * * * * 五子棋* * * * *\n");
printf(" * * * * * * * * *\n");
printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
printf(" \n");
printf(" * * * * * * * * * * * * * * * 游戏规则* * * * * * * * * * * * * * * *\n");
printf(" * * * * * * * *\n");
printf(" * * * * 游戏悔棋时不允许连续悔棋* * * *\n");
printf(" * * * * * * * *\n");
printf(" ************ 任一方五子相连即获胜,一局游戏也就结束***********\n");
printf(" * * * * * * * *\n");
printf(" ********* 请遵守游戏规则谢谢!!!********\n");
printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
printf(" \n");
printf(" * * * * * * * * * * * * * * * 游戏制作* * * * * * * * * * * * * * * *\n");
printf(" * * * * * * * *\n");
printf(" *** *** 计算机工程学院094班*** ***\n");
printf(" * * * * * * * *\n");
printf(" * * * * * * * 王鹏* * * * * * *\n");
printf(" * * * * * * * 2010.6.28 * * * * * * *\n");
printf(" *********************************************************************\n"); /*恢复*/
void huifu()
{
int i,j;
for(i=0;i<20;i++)
for(j=0;j<20;j++)
qipan[i][j]=linshi[i][j]; /*临时界面恢复到实际界面*/
}
void fuzhi()
{
int i,j;
for(i=0;i<20;i++)
for(j=0;j<20;j++)
linshi[i][j]=qipan[i][j];/*记录临时界面*/
}
void cundang()
{
FILE *fp;
int i,j;
if((fp=fopen(filename,"w"))==NULL) /*打开存档文件*/
{
printf(" 存档失败!!!\n");
printf(" 按任意键返回游戏界面!!!");
i=_getch();
fclose(fp);
}
else
{
for(i=0;i<20;i++)
{
for(j=0;j<20;j++)
{
cd.cun[i][j]=linshi[i][j]; /*数据恢复*/