c语言程序设计五子棋

上传人:无*** 文档编号:101195095 上传时间:2022-06-04 格式:DOC 页数:15 大小:81KB
返回 下载 相关 举报
c语言程序设计五子棋_第1页
第1页 / 共15页
c语言程序设计五子棋_第2页
第2页 / 共15页
c语言程序设计五子棋_第3页
第3页 / 共15页
点击查看更多>>
资源描述
word伊 犁 师 X 学 院 高级语言课程设计报告 学 院: 电子与信息工程学院 学生某某: 学 号: 专业届别: 指导教师:完成时间:五子棋游戏1 设计目的与要求目的:(1)学习综合运用C语言课程和其他相关课程的知识,提高分析解决实际问题的能力,进一步巩固、加深和拓宽所学的知识,进一步加强结构化程序设计的思想,加深对高级语言根本语言要素和控制结构的理解。(2)全面系统的学习面向对象程序设计的根本概念、根本语法和编程方法,与同学合作设计整套程序,并且独立完成一定工作量的程序设计.(3)掌握程序设计中的常用算法和C语言的程序技巧,培养良好的程序设计风格。(4)运用所学的知识了解五子棋游戏的制作结构,将所学的知识运用于实践中。要求:(1) 独自设计、编制、调试出一款五子棋游戏。(2) 要求该游戏具有趣味性和可操作性,能够正常运行。其中用到C语言中的各种语句、结构。如其中需要注意全局变量和局部变量的申明,数组的使用等(3)五子棋游戏要求能够进入欢迎界面,当有五颗一样颜色的棋子连续连成五颗,就胜出。任务:五子棋是一种传统的棋盘游戏,是我国古代传统的黑白棋种之一开展于日本,流行于欧洲任务内容就是设计一款老少皆宜、能够锻炼个人策略谋划能力棋。有助于孩子开发智力,或者闲暇时打发时间。原如此:(1)系统性。系统作为统一整体而存在,因此,在设计中,要从系统的角度考虑。系统的代码要统一,传递语言要尽可能一致。(2)可靠性。可靠性是指系统抵御外界干扰的能力与外界干扰时的恢复能力。(3)规X性。游戏的运用以吸引玩家的乐趣为前提,一方面,系统设计应尽量防止不必要的复杂化,另一方面模块应尽量简洁,以缩短处理流程。2 开发工具 C语言3 应用平台Windows xp4 功能设计游戏分析:五子棋是两人之间的竞技游戏,该五子棋程序根本上实现了五子棋游戏的功能,有双方下棋之前的欢迎界面与下棋过程中的棋盘界面,还有最终会判断出输赢。同时,该游戏采用了二维坐标实现的,明了易懂,方便玩家在游戏过程中的根本操作,使游戏更加简便。细节方面,该程序有实时储存功能,随时记录。另外考虑到游戏挺简单的,就没有设置悔棋的相关模块。游戏介绍:该游戏是简单的双人五子棋,所实现的功能是能够显示欢迎界面,选择是否进展游戏,进入游戏界面以后,玩家开始下棋。玩家输入坐标如此会在棋盘上显示棋子,假如是输入的坐标超出棋盘或者该位子已经有子如此会提示玩家重新输入坐标位子,假如输入如此退出游戏。4.1 算法设计程序说明:五子棋是一款经典的益智类游戏,通常是黑棋先行;五子棋专用盘为15*15方格,五个子的连接方向为横、竖、斜,当任一方的五个子在各方向上连成一线时,如此该方获胜。程序要求:按照程序说明编写五子棋程序,要求可以进展双人之间的游戏。程序输出:输出棋盘、棋子,并能够进展相应的操作。4.2流程图模块图1:程序整体设计思路流程图开始黑白棋子交替出现移动当前棋子否选择位置后放置棋子判断是否有5个连成一线是完毕图2:绘图过程的算法流程开始是完毕否同颜色的五个连成直线放置棋子绘制棋盘15*15初始化图形设备5 程序调试与运行5.1 程序运行结果图1 初始化界面图2 运行游戏的界面5.2 程序代码#include “#include#define LEFT 0x4b00#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011b#define ENTER 0x1c0dint x=-1,y=0;int max_x,max_y;int board_flag1515;void draw_board();void show_init(int pat);void hide();void show(int pat);void move();int is_win(int pat);void main() int driver=DETECT,mode; int i,j; for(i=0;i15;i+) for(j=0;j15;j+) board_flagij=0; initgraph(&driver,&mode,);draw_board();show_init(0);move();getch();closegraph();void draw_board() int i;max_x=getmaxx();max_y=getmaxy();setfillstyle(1,BLUE);bar(0,0,max_x,max_y); for(i=-7;i=8;i+) line(max_x/2-7*26,max_y/2+i*26,max_x/2+8*26,max_y/2+i*26);line(max_x/2+i*26,max_y/2-7*26,max_x/2+i*26,max_y/2+8*26);void show_init(int pat)setcolor(BLUE);if(pat=0) setfillstyle(1,BLACK);elsesetfillstyle(1,WHITE);x=-1;y=0;fillellipse(max_x/2-8*26+13,max_y/2-7*26+23,12,12);void hide()int m;m=board_flagxy;switch(m) case 0: setfillstyle(1,BLUE); break; case 1: setfillstyle(1,BLACK); break; case 2: Setfillstyle(1,WHITE); break; default: break;fillellipse(max_x/2+(x-7)*26+13,max_y/2+(y-7)*26+13,12,12);void show(int pat)switch(pat) case 0: setfillstyle(1,BLACK); break; case 1: setfillstyle(1,WHITE); break; default: break; fillellipse(max_x/2+(x-7)*26+13,max_y/2+(y-7)*26+13,12,12);void move()int key;int pat=0;for(;) key=bioskey(0); switch(key) case LEFT: if(x=-1) break;hide();x-;x=x14?14:x;show(pat);break;case DOWN:if(x=-1) break;hide();y+;y=y14?14:y;show(pat); break;case UP: if(x=-1) break;hide();y-;y=y0?0:y;show(pat); break;case ENTER: if(board_flagxy!=0) break;show(pat);board_flagxy=pat+1; if(is_win(pat) settextstyle(0,0,3); setcolor(RED);if(pat=0) outtextxy(max_x/2-80,max_y/2,Black Win!);else outtextxy(max_x/2-80,max_y/2,White Win!);setcolor(BLUE);getch();exit(1);if(pat=0) pat=1;elsepat=0;show_init(pat); break;case ESC: exit(1); break; default: break;int is_win(int pat)int i,j;int t=0;t=0;i=x;while(i=0) if(board_flagiy=pat+1)t+;elsebreak;i-;if(t=5)return 1;t=0;i=x;j=y;while(i15)if(j=0)if(j14)break;if(board_flagij=pat+1)t+;elsebreak;i-;j+;if(t=5)return 1;t=0;j=y;while(j=0)if(board_flagxj=pat+1)t+;elsebreak;j-;j=y+1;while(j=5)return 1;t=0;i=x;j=y;while(i=0)if(j0)break;if(board_flagij=pat+1)t+;else break;i-;j-;i=x+1;j=y+1;while(i14)break;if(board_flagij=pat+1)t+;elsebreak;i+;j+;if(t=5)return 1;return 0;6 完毕语在本次课程设计中,不仅让我认识到自己学习上的不足,也通过请教其他同学和教师,让我对程序进展了修改并运行,还让自己复习了编程的知识,对遇见的众多问题,通过思考,耐心动手解决问题。在设计五子棋游戏的过程中也让我明白合作的力量,设计在课程设计期间我也学到了课本中学不到的知识,明白了只有通过自己不断地动手实践才能找出不足、找出问题和提高自己的能力,发现课程设计是我学习和掌握专业知识的好方法,它可以让自己变得活跃,也会看明白程序问题,使自己受益匪浅。才能让自己的能力不断提高。 最后,感谢孙晓杰教师的悉心指导,教给我的程序设计的思想和知识。这次课程设计要感谢教师和同学为我提出了很多的宝贵意见,给我讲解了我很多不懂得知识与应用方法,为我更好的完成报告付出了辛勤的劳动。7 参考文献1谭浩强. C语言程序设计. :清华大学, 20112X莉. C语言程序设计第三版.:清华大学, 2005 3钱能. C语言程序设计教程. :清华大学, 20044武俊亮. C语言课程设计与系统开发案例. :清华,20025黄维通. C语言程序设计教程. :清华大学, 200515 / 15
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 基础医学


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!