《算法设计与分析》课程设计论文五子棋游戏.doc
《《算法设计与分析》课程设计论文五子棋游戏.doc》由会员分享,可在线阅读,更多相关《《算法设计与分析》课程设计论文五子棋游戏.doc(18页珍藏版)》请在三一办公上搜索。
1、算法设计与分析课程设计论文五子棋游戏学生姓名: 学生学号: 200710802017 院(系): 计算机学院 年级专业: 2007级信息与计算科学 指导教师: 2010-6-11 目录摘要21问题的提出32 问题的分析33 程序及流程的设计43.1概要设计43.2模块及其功能介绍53.2.1定义全局变量53.2.2Main()主函数53.2.3drawqp()画棋盘函数53.2.4win()判断是否胜出函数53.2.5Gameplay()双人对战函数53.2.6Xandy()显示光标纵横坐标函数63.2.7图形功能函数64 调试分析7总结8参考文献9附 录: 源程序10摘要本问介绍的一个五子棋
2、游戏的编写和设计,本游戏的依据就是下棋的双方各持黑白棋子,当某方在横、纵或对角方向连成五个棋子,则认为该玩家胜利,游戏结束。该程序用C语言编写,主要有C语言函数的调用(其中包括图形函数,判断函数等)和可视化编程,还有数组的应用,比如在该程序中就是用一个二维数组来表示棋盘。从程序表面看,这是一个二维平面图,所以数据用二维数组来表示,数组两个下标可以表示棋盘上的位置,数组元素的值代表棋格上的状态,共有三种情况,分别是0代表空格,1代表白棋,2代表黑棋。这样程序的主要工作是接收棋手按键操作,棋手1用Up、Down、Left、Right控制光标移动,回车键表示落子。棋手2用W、S、A、D控制光标移动,
3、空格键表示落子。一旦接收到回车键或空格键,说明棋手落子,先判断是否是有效位置,也就是说已经有棋子的位置不能重叠落子。落子成功后,马上判断以该位置为中心的八个方向:上、下、左、右、左上、左下、右上、右下是否有相同颜色的棋子连成五子,如果连成五子,则游戏结束,输出相应的信息。如果想退出游戏,可以按Esc键。关键词 五子棋,C语言,二维数组,函数 五子棋游戏设计1问题的提出连珠(五子棋)是有两个人在一盘棋上进行对抗的竞技运动。在对局开始时,先由用户选择哪方先开局,先开局一方将一枚棋子落在一点上,然后由另一方在对方棋周围的交叉点上落子,如此轮流落子,直到某一方首先在棋盘的直线、横线或斜线上形成连续的五
4、子则该方就算获胜。此时,算法结束。当有任何一方想退出时,都可在算法中实现。2 问题的分析为了要实现五子棋的人和人的对战,我们就首先要实现通过键盘对棋子的操作。因此我们必须要先定义一个键盘,并用二维数组来表示棋盘并把它用图形函数输出在屏幕上。因此我们可以定义结构体来表示一个完整的棋盘。为了让人可以移动光标来选择下棋位置,我们必须要定义函数来输出光标的位置(既横纵坐标)。我们实现了人和人的对战就要胜负,因此我分析要定义一个判断函数来判断谁胜谁负。要是我们在定义一个游戏开始函数来控制游戏的还是和一个游戏结束函数来控制游戏的结束,那么我们这就是一个完整的游戏过程,则我们这个程序就基本实现了人和人的对战
5、。3 程序及流程的设计 开始西 安 工 业 大 学计算机科学与工程学院算 法 设 计 与 分 析 课 程 设 计题 目: 五子棋 班 级: 050606 人 数: 13人 成 员: 陈玮 高谦 侯夕杰 马涛 宋文彬 王伟 周仁文 邵文清赵瑞红 李盈超 尉建明 陈建军 张祥雄 学 号: 时 间: 2008年元月16日 目 录1课程设计报告-1 1.1问题描述-1 1.2需求分析-1 1.3概要设计-1 1.4详细设计-页码 1.5调试分析-页码2源程序-页码3程序的说明文件-页码4课设总结-页码1. 课程设计报告1.1问题描述连珠(五子棋)是有两个人在一盘棋上进行对抗的竞技运动。在对局开始时,先
6、由用户选择哪方先开局,先开局一方将一枚棋子落在一点上,然后由另一方在对方棋周围的交叉点上落子,如此轮流落子,直到某一方首先在棋盘的直线、横线或斜线上形成连续的五子则该方就算获胜。此时,算法结束。当有任何一方想退出时,都可在算法中实现。 1.2需求分析 (1)、输出游戏规则并由用户决定是否遵守并开局。 (2)、要求动态画出棋盘大小。(3)、画棋子并确定其颜色。 (4)、玩家轮流下棋。(5)、判断键盘输入哪个键按规则执行操作 (6)、判断谁先落棋。 (7)判断赢家1.3概要设计 流程图:Y Y N Y N Y N Y 1.4详细设计 1.5调试分析 运行结果:屏幕显示:Please input w
7、ho is first:1 or 2 当输入1时,白棋先走;当输入2时,红棋先走。屏幕显示:Please input the size of chessbox:从键盘输入t值,则棋盘大小为t*t型。屏幕显示:Left, Right, Up, Down KEY to move, Space to put, ESC-quit 及棋盘,棋子,用上下左右键控制棋子向,用空格键确定棋子的落点 。当白棋赢时,显示The White Win ! 当红棋赢时,显示The Red Win !遇到的问题:算法改进思想:将棋盘由原先的固定大小改进为可动态变化,由原来固定的白棋先走改进为让用户可以选择哪方先落子。2源
8、程序#include#include#include#include#include#define LEFT 0x4b00#define RIGHT 0x4d00#define DOWN 0x5000#define UP 0x4800#define ESC 0x011b#define SPACE 0x3920#define BILI 20#define JZ 4#define JS 3#define N 19int boxNN,s; /*落子点*/int step_x,step_y ;int key ;int flag,i,j ;void draw_box();void draw_cicle(
9、int x,int y,int color);void change();void judgewho(int x,int y);void judgekey();int judgeresult(int x,int y);void attentoin();void attentoin() /*游戏规则*/ char ch ; printf(Play attentoins:nn); printf(1. Press Left,Right,Up,Down Key to move Piecenn); printf(2. Press Space to place the Piecenn); printf(3
10、. DO NOT press Space outside of the draw_boxnn); printf(Do you accept the above Playing attentoins? Y/Other:); while(1) ch=getche(); if(ch=Y|ch=y) break ; else exit(0); printf(nnwhat size of the draw_box:); scanf(%d,&s); printf(nnwho is the frist:1 or 2? ); while(1) scanf(%d,&flag); if(flag!=1&flag!
11、=2) printf(Error!n); else break; void draw_box() /*画出棋盘*/ int x1,x2,y1,y2 ; setbkcolor(LIGHTBLUE); setcolor(YELLOW); gotoxy(7,2); printf(Left, Right, Up, Down KEY to move, Space to put, ESC-quit.); for(x1=1,y1=1,y2=s;x1=s;x1+) line(x1+JZ)*BILI,(y1+JS)*BILI,(x1+JZ)*BILI,(y2+JS)*BILI); for(x1=1,y1=1,x
12、2=s;y1=s;y1+) line(x1+JZ)*BILI,(y1+JS)*BILI,(x2+JZ)*BILI,(y1+JS)*BILI); for(x1=1;x1=s;x1+) for(y1=1;y1=s;y1+) boxx1y1=0 ;void draw_cicle(int x,int y,int color) /*棋子*/ setcolor(color); setlinestyle(SOLID_LINE,0,1); x=(x+JZ)*BILI ; y=(y+JS)*BILI ; circle(x,y,8);void judgekey() switch(key) case LEFT :
13、if(step_x-1=1;i-) if(boxij=0) draw_cicle(step_x,step_y,LIGHTBLUE); break ; if(is) break ; else for(i=step_x+1,j=step_y;is)break ; step_x=i ; judgewho(step_x,step_y); break ; case DOWN : if(step_y+1s) break ; else for(i=step_x,j=step_y+1;js)break ; step_y=j ; judgewho(step_x,step_y); break ; case UP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法设计与分析 算法 设计 分析 课程设计 论文 五子棋 游戏

链接地址:https://www.31ppt.com/p-3933113.html