文档介绍:该【c语言程序设计-五子棋 】是由【吴老师】上传分享,文档一共【15】页,该文档可以免费在线阅读,需要了解更多关于【c语言程序设计-五子棋 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。伊犁师范学院高级语言课程设计报告学院:电子与信息工程学院学生姓名:学号:专业届别:指导教师:完成时间:五子棋游戏1设计目的及要求目的:(1)学习综合运用C语言课程和其他相关课程的知识,提高分析解决实际问题的能力,进一步稳固、加深和拓宽所学的知识,进一步加强结构化程序设计的思想,加深对高级语言根本语言要素和控制结构的理解。(2)全面系统的学习面向对象程序设计的根本概念、根本语法和编程方法,与同学合作设计整套程序,并且独立完成一定工作量的程序设计.(3)掌握程序设计中的常用算法和C语言的程序技巧,培养良好的程序设计风格。(4)运用所学的知识了解五子棋游戏的制作结构,将所学的知识运用于实践中。要求:单独设计、编制、调试出一款五子棋游戏。要求该游戏具有趣味性和可操作性,能够正常运行。其中用到C语言中的各种语句、结构。〔如其中需要注意全局变量和局部变量的申明,数组的使用等〕(3)五子棋游戏要求能够进入欢迎界面,当有五颗相同颜色的棋子连续连成五颗,就胜出。任务:五子棋是一种传统的棋盘游戏,是我国古代传统的黑白棋种之一开展于日本,流行于欧洲任务内容就是设计一款老少皆宜、能够锻炼个人策略谋划能力棋。有助于孩子开发智力,或者闲暇时打发时间。原那么:(1)系统性。系统作为统一整体而存在,因此,在设计中,要从系统的角度考虑。系统的代码要统一,传递语言要尽可能一致。(2)可靠性。可靠性是指系统抵御外界干扰的能力及外界干扰时的恢复能力。(3)标准性。游戏的运用以吸引玩家的乐趣为前提,一方面,系统设计应尽量防止不必要的复杂化,另一方面模块应尽量简洁,以缩短处理流程。2开发工具C语言3应用平台Windowsxp4功能设计游戏分析:五子棋是两人之间的竞技游戏,该五子棋程序根本上实现了五子棋游戏的功能,有双方下棋之前的欢迎界面及下棋过程中的棋盘界面,还有最终会判断出输赢。同时,该游戏采用了二维坐标实现的,明了易懂,方便玩家在游戏过程中的根本操作,使游戏更加简便。细节方面,该程序有实时储存功能,随时记录。另外考虑到游戏挺简单的,就没有设置悔棋的相关模块。游戏介绍:该游戏是简单的双人五子棋,所实现的功能是能够显示欢迎界面,选择是否进行游戏,进入游戏界面以后,玩家开始下棋。玩家输入坐标那么会在棋盘上显示棋子,〔假设是输入的坐标超出棋盘或者该位子已经有子那么会提示玩家重新输入坐标位子〕,假设输入那么退出游戏。:五子棋是一款经典的益智类游戏,通常是黑棋先行;五子棋专用盘为15*15方格,五个子的连接方向为横、竖、斜,当任一方的五个子在各方向上连成一线时,那么该方获胜。程序要求:按照程序说明编写五子棋程序,要求可以进行双人之间的游戏。程序输出:输出棋盘、棋子,并能够进行相应的操作。:程序整体设计思路流程图开始黑白棋子交替出现移动当前棋子否选择位置后放置棋子判断是否有5个连成一线是结束图2:绘图过程的算法流程开始是结束否同颜色的五个连成直线放置棋子绘制棋盘〔15*15〕#include“〞#include〞〞#defineLEFT0x4b00#defineRIGHT0x4d00#defineDOWN0x5000#defineUP0x4800#defineESC0x011b#defineENTER0x1c0dintx=-1,y=0;intmax_x,max_y;intboard_flag[15][15];voiddraw_board();voidshow_init(intpat);voidhide();voidshow(intpat);voidmove();intis_win(intpat);voidmain(){intdriver=DETECT,mode;inti,j;for(i=0;i<15;i++)for(j=0;j<15;j++){board_flag[i][j]=0;}initgraph(&driver,&mode,〞〞);draw_board();show_init(0);move();getch();closegraph();}voiddraw_board(){inti;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);}}voidshow_init(intpat){setcolor(BLUE);if(pat==0){setfillstyle(1,BLACK);}else{setfillstyle(1,WHITE);}x=-1;y=0;fillellipse(max_x/2-8*26+13,max_y/2-7*26+23,12,12);}voidhide(){intm;m=board_flag[x][y];switch(m){case0:setfillstyle(1,BLUE);break;case1:setfillstyle(1,BLACK);break;case2:Setfillstyle(1,WHITE);break;default:break;}fillellipse(max_x/2+(x-7)*26+13,max_y/2+(y-7)*26+13,12,12);}voidshow(intpat){switch(pat){case0:setfillstyle(1,BLACK);break;case1:setfillstyle(1,WHITE);break;default:break;}fillellipse(max_x/2+(x-7)*26+13,max_y/2+(y-7)*26+13,12,12);}voidmove(){intkey;intpat=0;for(;;){key=bioskey(0);switch(key){caseLEFT:if(x==-1){break;}hide();x--;x=x<0?0:x;show(pat);break;caseRIGHT:if(x==-1){setfillstyle(1,BLUE);fillellipse(max_x/2+(x-7)*26+13,max_y/2+(y-7)*26+13,12,12);}else{hide();}x++;x=x>14?14:x;show(pat);break;caseDOWN:if(x==-1){break;}hide();y++;y=y>14?14:y;show(pat);break;caseUP:if(x==-1){break;}hide();y--;y=y<0?0:y;show(pat);break;caseENTER:if(board_flag[x][y]!=0){break;}show(pat);board_flag[x][y]=pat+1;if(is_win(pat)){settextstyle(0,0,3);setcolor(RED);if(pat==0){outtextxy(max_x/2-80,max_y/2,〞BlackWin!〞);}else