




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章 双人对战五子棋单机游戏益智游戏作为人类社会发展和创新的必然产物,已经被越来越多的人们所重视它寓教于乐,以轻松愉快的方式让人们在娱乐中学习,在学习中娱乐,在欢乐中得到思维能力的训练我国目前正处在素质教育改革的风头浪尖,益智游戏因其特殊性便成为了非常行之有效的辅助工具,其发展前景良好市场相当广阔。1. 设计题目使用C语言及VC绘图库,在VC环境下,设计一个双人五子棋对战单机游戏,双方各执黑白一子,黑白双方轮流落子,直到某一方首先在棋盘的横线、纵线或斜线上形成连续五子,则该方就算获胜,游戏过程可以悔棋一步;要求友好的图形化界面、方便操作。2. 功能设计要求根据五子棋游戏规则,项目设计有以下几点要求:1. 输出游戏规则并由用户决定是否遵守并开局;2. 要求动态画出棋盘大小;3. 画棋子并确定其颜色;4. 提示下棋规则;5. 玩家轮流下棋;6. 判断谁先落棋;7. 允许且只允许悔棋一步;8. 判断每局游戏输赢,显示每局游戏的获胜者及分数;9. 判断是否进行下一局;10. 判最终赢家(三局两胜)。3. 详细设计1.3.1 功能模块图根据功能设计要求,双人对战五子棋参考功能模块图如下所示:图 11 双人对战功能模块图1.3.2 数据结构本项目涉及到的主要数据是存放棋局的二维数组,棋盘大小可以改变,利用宏定义实现如下:#define N 10int chessNN=0;/*初值为0*/chess的初值为0,chessij值为1表示该处落的是白子;chessij值为2,表示该处落的是黑子。白棋子率先在一条直线上值都为1,白棋子赢;黑棋子率先一条直线上值都为2,黑子赢。当完成当前局,开始下一局时,chess重新赋值为0。1.3.3 系统流程图根据系统功能设计要求,系统参考流程图如下所示:图 12 双人对战单机游戏系统流程图1.3.4 主要函数及算法的设计与实现1. 判断是否五子相连函数函数原型: int Game_Over1( int a1010,int chess_symbol )/* 判断五子相连是否是形或者|形(事实上-与|关于对称) */ int Game_Over2( int a1010,int chess_symbol )/*判断五子相连是否是形*/ int Game_Over3( int a1010,int chess_symbol )/*判断五子相连是否是/形*/功能:判断某一方是否有5个棋子在一条直线上,分别有“”,“ |”, “/”,“ ”四种情况。参数:存方棋盘信息的参数a;判断是不是四种直线“”,“ |”, “/”,“ ”中的一种chess_symbol。返回值:如果判断的确是某一方五子相连,则返回1,否则返回0。要求:棋盘是用二维数组来存放的,利用双重循环遍历整个二维数组。参考函数如下:int Game_Over1( int a1010,int chess_symbol )/* 形或者|形(事实上-与|关于对称) */int i,j,k,l,r;for( i=0; i N; i+ )for( k=0; k N-4; k+ )l=r=0;for( j=k; j k+5; j+ )if( aij = chess_symbol )/* -形*/l+;if( aji = chess_symbol )/* |形*/r+;if( l = 5 | r = 5 )/*连续的个棋子在一条直线上时,游戏结束*/return 1; return 0;int Game_Over2( int a1010 ,int chess_symbol )/* 形*/int i,j,k,m,LeftDown,RightUp;for( m=0; m N-4; m+ )for( k=0; k N-4-m; k+ )RightUp=LeftDown=0;for( i=k ,j=k+m; i = 4; m- )for( k=0; k m + 1 - 4; k+ )RightDown=LeftUp=0;for( i=k ,j= m - k; i k+5; i+ ,j- )if( aij = chess_symbol )/*对角线/上及其左上方的/形*/LeftUp+;if( aN-1-jN-1-i = chess_symbol )/*对角线/上及其右下方的/形*/RightDown+;if( RightDown = 5 | LeftUp = 5 )return 1;return 0;2. 画棋盘函数原型:void MainFace( )功能:画五子棋棋盘。要求:利用第二章VC绘图库知识,画五子棋和棋盘。参考代码:void MainFace()int x;initgraph(500,500);/*生成一个,区域*/setbkcolor(LIGHTGRAY);cleardevice();/*背景设置为白色*/setcolor(RED);/*画图颜色是红色*/for(x=0;x=500;x=x+50)/*画棋盘格*/line(x,0,x,500);line(0,x,500,x);五子棋游戏界面如下图所示:图 13 五子棋图形界面设计3. 鼠标相应操作算法算法思想:判断该谁下棋?落子后是否悔棋?落子后该局是否胜出?落子后是否确的最后胜利?参考代码实现:while (true)/*响应鼠标操作*/m = GetMouseMsg();if(m.uMsg=WM_LBUTTONDOWN)x=m.x%50;if(x=25)m.x=m.x-x;else m.x=m.x+(50-x);y=m.y%50;if(y=25)m.y=m.y-y;else m.y=m.y+(50-y);i=m.x/50;j=m.y/50;if (chessij!=0)/*防止在一个地方重复下棋子chessij=1 为白子chessij=1 为黑子*/continue;if(n=1)/*判断该谁下棋*/ setcolor(WHITE); setfillstyle(WHITE);fillellipse(m.x,m.y,10,10);chessij=1;if(Game_Over1(chess,1)=1|Game_Over2(chess,1)=1|Game_Over2(chess,1)=1)setcolor(BLACK);outtextxy(200,200,此局白子胜利);v0+; if(v0=2) outtextxy(200,300,3局胜,白子胜局,白子胜出); break;outtextxy(250,250,是否继续下棋:Y OR N);ch= getch();if(ch=N) break;elsefor(i=0;iN;i+)for(j=0;jN;j+)chessij=0;setbkcolor(LIGHTGRAY);cleardevice();/*背景设置为白色*/setcolor(RED);/*画图颜色是红色*/for(x=0;x=500;x=x+50)/*画棋盘格*/line(x,0,x,500);line(0,x,500,x);n=2;/*换方下子*/else chessij=2;setcolor(BLACK); setfillstyle(BLACK);fillellipse(m.x,m.y,10,10);if(Game_Over1(chess,2)=1|Game_Over2(chess,2)=1|Game_Over2(chess,2)=1) setcolor(BLACK);outtextxy(200,200,此局黑子胜利);v1+;if(v1=2) outtextxy(200,200,3局胜,黑子胜局,黑子胜出);break;outtextxy(250,250,是否继续下棋:Y OR N);ch= getch();if(ch=N) break;elsefor(i=0;iN;i+)for(j=0;jN;j+)chessij=0;setbkcolor(LIGHTGRAY);cleardevice();/*背景设置为白色*/setcolor(RED);/*画图颜色是红色
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 激光美白相关知识及课件
- 二零二五年度机关事业单位社保代征代缴合作协议书
- 二零二五年度智能办公软件定制开发与授权使用合同
- 二零二五年水利工程安全防护施工合同规范样本
- 二零二五年度高性能涂料建筑工程劳务分包服务合同
- 2025版高空通信工程劳务分包合同变更与补充协议范本
- 2025版节能环保砌砖施工合同
- 二零二五年度家具行业研发与技术合作合同范本
- 二零二五年餐饮业冷链物流配送服务合同范本
- 2025版桥梁抗震加固设计与施工合同
- 校园基孔肯雅热防控措施课件
- (2025年标准)离职手协议书
- 2025年团场人员考试题库
- 班组质量管理
- 2025年四川省建筑施工企业安管人员考试(企业主要负责人·A类)历年参考题库含答案详解(5卷)
- 实战能力评估模型-洞察及研究
- 超声引导髂筋膜阻滞技术
- 铁路建设工程质量安全监督管理办法
- 数字经济与市场结构-洞察及研究
- DB42T 1496-2019 公路边坡监测技术规程
- 学校餐厅试吃活动方案
评论
0/150
提交评论