c语言程序的设计五子棋_第1页
c语言程序的设计五子棋_第2页
c语言程序的设计五子棋_第3页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

........................伊犁师 学院高级语言课程设计报告学院:电子与信息工程学院学生:五子棋游戏设计目的及要求目的:C全面系统的学习面向对象程序设计的基本概念、基本语法和序设计.掌握程序设计中的常用算法和C的程序设计风格。运用于实践中。要求:独自设计、编制、调试出一款五子棋游戏。要求该游戏具有趣味性和可操作性,能够正常运行。其中用C(量的申明,数组的使用等)(3)五子棋游戏要求能够进入欢迎界面,当有五颗相同颜色的棋子连续连成五颗,就胜出。任务:系统的角度考虑。系统的代码要统一,传递语言要尽可能一致。的恢复能力。规性。游戏的运用以吸引玩家的乐趣为前提,一方面,系统处理流程。开发工具C语言应用平台Windowsxp功能设计游戏分析:的,就没有设置悔棋的相关模块。游戏介绍:该游戏是简单的双人五子棋,所实现的功能是能够显示欢迎界(若是输入的坐标超出棋盘或者该位子已经有子则会提示玩家重新输入坐标位子,若输入则退出游戏。程序说明:五子棋是一款经典的益智类游戏,通常是黑棋先行;五子棋专用15*15子在各方向上连成一线时,则该方获胜。程序要求:程序输出:输出棋盘、棋子,并能够进行相应的操作。流程图模块1:程序整体设计思路流程图开始开始黑白棋子交替出现移动当前棋子否选择位置后放置棋子5成一线是结束2:绘图过程的算法流程开始初始化图形设备开始初始化图形设备绘制棋盘(15*15)放置棋子同颜色的五个连成直线是结束程序调试及运行程序运行结果1初始化界面2程序代码#include#include”graphics.h”#defineLEFT0x4b00#defineRIGHT0x4d00#defineDOWN0x5000#defineUP0x4800#defineESC0x011b#defineENTER0x1c0dintx=-1,y=0;intmax_x,max_y;intboard_flag[15][15];voiddraw_board();voidshow_init(intvoidhide();voidshow(intvoidmove();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){ caseif(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;caseif(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{outtextxy(max_x/2-80,max_y/2,”WhiteWin!”);}setcolor(BLUE);getch();exit(1);}if(pat==0){pat=1;}else{pat=0;}show_init(pat);break;caseESC:exit(1);break;default:break;}}}intis_win(intpat){inti,j;intt=0;cnt=0;i=x;while(i<15){if(board_flag[i][y]==pat+1){t++;}else{break;}i++;}i=x-1;while(i>=0){if(board_flag[i][y]==pat+1){cnt++;}else{break;}i--;}if(cnt>=5){return1;}cnt=0;i=x;j=y;while(i<15){if(j<0){break;}if(board_flag[i][j]==pat+1){t++;}else{break;}i++;j--;}i=x-1;j=y+1;while(i>=0){if(j>14){break;}if(board_flag[i][j]==pat+1){cnt++;}else{break;}i--;j++;}if(cnt>=5){return1;}cnt=0;j=y;while(j>=0){if(board_flag[x][j]==pat+1){cnt++;}else{break;}j--;}j=y+1;while(j<15){if(board_flag[x][j]==pat+1){cnt++;}else{break;}j++;}if(cnt>=5){return1;}cnt=0;i=x;j=y;while(i>=0){if(j<0){break;}if(board_flag[i][j]==pat+1){cnt++;}else{break;}i--;j--;}i=x+1;j=y+1;while(i<15){if(j>14){break;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论