c语言程序的设计_五子棋

上传人:xmg****18 文档编号:118818214 上传时间:2019-12-26 格式:DOC 页数:15 大小:91.50KB
返回 下载 相关 举报
c语言程序的设计_五子棋_第1页
第1页 / 共15页
c语言程序的设计_五子棋_第2页
第2页 / 共15页
c语言程序的设计_五子棋_第3页
第3页 / 共15页
c语言程序的设计_五子棋_第4页
第4页 / 共15页
c语言程序的设计_五子棋_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《c语言程序的设计_五子棋》由会员分享,可在线阅读,更多相关《c语言程序的设计_五子棋(15页珍藏版)》请在金锄头文库上搜索。

1、. . . . .伊 犁 师 范 学 院 高级语言课程设计报告 学 院: 电子与信息工程学院 学生姓名: 学 号: 专业届别: 指导教师: 完成时间: 五子棋游戏1 设计目的及要求目的:(1)学习综合运用C语言课程和其他相关课程的知识,提高分析解决实际问题的能力,进一步巩固、加深和拓宽所学的知识,进一步加强结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。(2)全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法,与同学合作设计整套程序,并且独立完成一定工作量的程序设计.(3)掌握程序设计中的常用算法和C语言的程序技巧,培养良好的程序设计风格。(4)运用所学的知识了解五

2、子棋游戏的制作结构,将所学的知识运用于实践中。要求:(1) 独自设计、编制、调试出一款五子棋游戏。(2) 要求该游戏具有趣味性和可操作性,能够正常运行。其中用到C语言中的各种语句、结构。(如其中需要注意全局变量和局部变量的申明,数组的使用等)(3)五子棋游戏要求能够进入欢迎界面,当有五颗相同颜色的棋子连续连成五颗,就胜出。任务:五子棋是一种传统的棋盘游戏,是我国古代传统的黑白棋种之一发展于日本,流行于欧洲任务内容就是设计一款老少皆宜、能够锻炼个人策略谋划能力棋。有助于孩子开发智力,或者闲暇时打发时间。原则:(1)系统性。系统作为统一整体而存在,因此,在设计中,要从系统的角度考虑。系统的代码要统

3、一,传递语言要尽可能一致。(2)可靠性。可靠性是指系统抵御外界干扰的能力及外界干扰时的恢复能力。(3)规范性。游戏的运用以吸引玩家的乐趣为前提,一方面,系统设计应尽量避免不必要的复杂化,另一方面模块应尽量简洁,以缩短处理流程。2 开发工具 C语言3 应用平台Windows xp4 功能设计游戏分析: 五子棋是两人之间的竞技游戏,该五子棋程序基本上实现了五子棋游戏的功能,有双方下棋之前的欢迎界面及下棋过程中的棋盘界面,还有最终会判断出输赢。同时,该游戏采用了二维坐标实现的,明了易懂,方便玩家在游戏过程中的基本操作,使游戏更加简便。细节方面,该程序有实时储存功能,随时记录。另外考虑到游戏挺简单的,

4、就没有设置悔棋的相关模块。游戏介绍: 该游戏是简单的双人五子棋,所实现的功能是能够显示欢迎界面,选择是否进行游戏,进入游戏界面以后,玩家开始下棋。玩家输入坐标则会在棋盘上显示棋子,(若是输入的坐标超出棋盘或者该位子已经有子则会提示玩家重新输入坐标位子),若输入则退出游戏。4.1 算法设计程序说明:五子棋是一款经典的益智类游戏,通常是黑棋先行;五子棋专用盘为15*15方格,五个子的连接方向为横、竖、斜,当任一方的五个子在各方向上连成一线时,则该方获胜。程序要求:按照程序说明编写五子棋程序,要求可以进行双人之间的游戏。程序输出:输出棋盘、棋子,并能够进行相应的操作。4.2流程图模块图1:程序整体设

5、计思路流程图开始黑白棋子交替出现移动当前棋子否选择位置后放置棋子判断是否有5个连成一线是结束图2:绘图过程的算法流程开始是结束否同颜色的五个连成直线放置棋子绘制棋盘(15*15)初始化图形设备5 程序调试及运行5.1 程序运行结果图1 初始化界面图2 运行游戏的界面5.2 程序代码#include “stdio.h”#include”graphics.h”#define LEFT 0x4b00#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011b#define ENTER 0x1c0dint x=-1

6、,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();ge

7、tch();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) s

8、etfillstyle(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-

9、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)

10、 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) outte

11、xtxy(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 cnt=0;cnt=0;i=x;while(i=0) if(board_flagiy=pat+1)cnt+;elsebreak;i-;if(cnt=5)return 1;cnt=0;i=x;j=y;while(i15)if(j0) break;if(board_flagij=pat+1) cnt+;else b

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号