c语言报告五子棋.doc
《c语言报告五子棋.doc》由会员分享,可在线阅读,更多相关《c语言报告五子棋.doc(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、青岛理工大学C语言程序设计题目 游戏五子棋 指导教师: 李兰 姓名: 王鹏 学号: 200907127 班级: 计算094 专业: 计算机科学与技术 地点: 二号实验楼第六机房 时间: 6.28 至 7.1 一、内容游戏五子棋在这个小游戏中,实现了两人对战的游戏模式,没有添加禁手规则,另外考虑到落子时的可能失误,就添加了悔棋工具,游戏过程中可以进行游戏存档,进入悔棋和存档的方法为将光标移动到已有子的位置,敲一下落子键即可。下次游戏时候可以进入存档界面然后选择读取游戏存档即可继续玩上次的游戏。在游戏时自动计算双方各胜几局,平几局。按键控制 一号玩家: 上 :w 下 :s 左 : a 右 : d
2、落子 : f 二号玩家: 上 :I 下 :k 左 : j 右 : l 落子 : h 二、上机环境操作系统:Windows 98/XP/Win 7开发工具:VC+6.0三、函数调用关系图zq()check()print()Printsjm()checkheqi()main()system()newdata()fuzhi()huifu()start()jilu()huiqi()四、各函数功能说明对每个函数功能加以说明,说明该函数主要实现了什么内容。1 int main() 主函数2 system(“color 5a”) 控制台前景、背景颜色设置3 system(“cls”) 清屏4 Printsj
3、m(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) 数据刷新五、算法描述
4、或流程图system(“color 5a”)和system(“cls”) 只需要调用头文件,并在使用前将要声明的变量声明好即可。/*输出游戏首页*/*原样输出即可*/void Printsjm() printf( * * * * * * * * * * * * * * * 游戏名称 * * * * * * * * * * * * * * *n);printf( * * * * * * * * *n);printf( * * * * * * 五子棋 * * * * *n);printf( * * * * * * * * *n); printf( * * * * * * * * * * * * *
5、 * * * * * * * * * * * * * * * * * * * * * *n);printf( n);printf( * * * * * * * * * * * * * * * 游戏规则* * * * * * * * * * * * * * * *n); printf( * * * * * * * *n);printf( * * * * 游戏悔棋时不允许连续悔棋 * * * *n); printf( * * * * * * * *n);printf( * 任一方五子相连即获胜,一局游戏也就结束 *n);printf( * * * * * * * *n); printf( * 请遵
6、守游戏规则谢谢! *n); printf( * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n);printf( n);printf( * * * * * * * * * * * * * * * 游戏制作* * * * * * * * * * * * * * * *n);printf( * * * * * * * *n); printf( * * 计算机工程学院094班 * *n);printf( * * * * * * * *n); printf( * * * * * * * 王鹏 * * * * *
7、* *n); printf( * * * * * * * 2010.6.28 * * * * * * *n);printf( *n); /*恢复*/void huifu()int i,j;for(i=0;i20;i+)for(j=0;j20;j+)qipanij=linshiij; /*临时界面恢复到实际界面*/void fuzhi()int i,j;for(i=0;i20;i+)for(j=0;j20;j+)linshiij=qipanij;/*记录临时界面*/void cundang()FILE *fp;int i,j;if(fp=fopen(filename,w)=NULL) /*打开存
8、档文件*/printf( 存档失败!n);printf( 按任意键返回游戏界面!);i=_getch();fclose(fp);else for(i=0;i20;i+)for(j=0;j20;j+)cd.cunij=linshiij; /*数据恢复*/cd.jx=jx;cd.jy=jy;cd.leiji=leiji;fwrite(&cd,sizeof(struct cund),1,fp);printf( 存档成功!n);printf( 按任意键返回游戏界面!);i=_getch();fclose(fp);system(cls);void duqu() /*读取游戏进度*/FILE *fpp;i
9、nt i,j; if(fpp=fopen(filename,r)=NULL)printf( 你还没有存档,读取存档失败!n);printf( 按任意键返回游戏界面!); i=_getch();fclose(fpp);elsefread(&cd,sizeof(struct cund),1,fpp);fclose(fpp);jx=cd.jx;jy=cd.jy;leiji=cd.leiji;for(i=0;i20;i+)for(j=0;j20;j+)qipanij=cd.cunij;system(cls);printf( 读取存档成功,请继续游戏!n);printf( 按任意键返回游戏界面!);i=
10、_getch();void jilu(char (*p)20)/*记录悔棋前棋盘个子的位置以及悔棋后该谁落子*/int i,j; for(i=0;i20;i+) for(j=0;j20;j+)*(*(p+i)+j)=qipanij;/*悔棋到上次你的落子权*/void huiqi(char (*p)20)int i,j;for(i=0;i20;i+)for(j=0;j20;j+)qipanij=*(*(p+i)+j);/*输出界面,每次走完一步棋都要刷新界面*/void print()/*start()函数也是同样道理*/int i=0,j=0,k=0;/*显示列坐标*/printf(000|
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 报告 五子棋
限制150内