课程设计-c语言设计_五子棋游戏

上传人:第*** 文档编号:55672141 上传时间:2018-10-04 格式:DOC 页数:16 大小:172.01KB
返回 下载 相关 举报
课程设计-c语言设计_五子棋游戏_第1页
第1页 / 共16页
课程设计-c语言设计_五子棋游戏_第2页
第2页 / 共16页
课程设计-c语言设计_五子棋游戏_第3页
第3页 / 共16页
课程设计-c语言设计_五子棋游戏_第4页
第4页 / 共16页
课程设计-c语言设计_五子棋游戏_第5页
第5页 / 共16页
点击查看更多>>
资源描述

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

1、河河 南南 城城 建建 学学 院院测绘与城市空间信息系测绘与城市空间信息系测绘程序设计测绘程序设计题题 目目: : 五五子子棋棋游游戏戏 班班 级级: 0 06 61 14 41 11 12 2 人人 数数: 3 3人人 成成 员员: 学学 号号: 指指导导老老师师 : : 时时 间间: 2 20 01 12 2年年6 6月月 1目目 录录1 1 课程设计报告课程设计报告-2-21.11.1 问题描述问题描述-2-21.21.2 任务分工任务分工- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 2 21.31.3 需求分析需

2、求分析-3-31.41.4 概要设计概要设计-3-31.51.5 详细设计详细设计-4-41.61.6 调试分析调试分析-5-52 2 源程序源程序-6-63 3 程序的说明文件程序的说明文件-12-124 4 课设总结课设总结-13-1321.1.课程设计报告课程设计报告1.11.1 问题描述问题描述连珠(五子棋)是有两个人在一盘棋上进行对抗的竞技运动。在对局开始时,先由用户选择哪方先开局,先开局一方将一枚棋子落在一点上,然后由另一方在对方棋周围的交叉点上落子,如此轮流落子,直到某一方首先在棋盘的直线、横线或斜线上形成连续的五子则该方就算获胜。此时,算法结束。当有任何一方想退出时,都可在算法

3、中实现。 1.2 五子棋的背景五子棋的背景传统五子棋的棋具与围棋相同,棋子分为黑白两色,棋盘为1515,棋子放置于棋盘线交叉点上。两人对局,各执一色,轮流下一子,先将横、竖或斜线的 5 个或 5 个以上同色棋子连成不间断的一排者为胜。 因为传统五子棋在落子后不能移动或拿掉,所以也可以用纸和笔来进行游戏。1.2 任务分工任务分工组长:赵哲武负责小组程序的输入和创新部分,分配任务,使工作衔接有序,以及程序的整体规划,将各部分文件衔接,查找错误,排版论文并3完成主函数的设及相关变量的定义,完成 void attentoin()的设计细节设计,完成 void draw_box(),void chang

4、e();void judgekey()的设计并调试并运行程序,完成实验报告。 组员:李志强完成 void judgewho(int x,int y)的设计,并作出自己部分的编程代码,流程图。组员:夏韦程完成 void draw_cicle(int x,int y,int color)的设计,并作出自己部分的编程代码,流程图。组员:李少帅完成 int judgeresult(int x,int y)的设计。1.31.3 需求分析需求分析(1) 、输出游戏规则并由用户决定是否遵守并开局。(2) 、要求动态画出棋盘大小。(3) 、画棋子并确定其颜色。(4) 、玩家轮流下棋。(5) 、判断键盘输入哪个

5、键按规则执行操作(6) 、判断谁先落棋。(7)判断赢家1.41.4 概要设计概要设计流程图4流程图 1YY Y开始 西西安安工工业业大大学学计计算算机机科科学学与与工工程程学学院院算算法法 设设 计计 与与 分分 析析 课课 程程 设设 计计题题目目: : 五五子子棋棋 班班级级:0 05 50 06 60 06 6人人数数:1 13 3人人成成员员:陈玮高谦侯夕杰马涛宋文彬王伟周仁文邵文清赵瑞红李盈超尉建明陈建军张祥雄学学号号:时时间间:2 20 00 08 8年年元元月月1 16 6日日目目录录1 1 课课程程设设计计报报告告- -1 11.11.1问问题题描描述述- -1 11.21.2

6、需需求求分分析析- -1-11.31.3概概要要设设计计- -1-11.41.4详详细细设设计计- - -页页码码1.51.5调调试试分分析析- -页页码码2 2 源源程程序序- -页页码码3 3 程程序序的的说说明明文文件件- -页页码码4 4 课课设设总总结结- - -页页码码1.1.课课程程设设计计报报告告1.1.1 1 问问题描题描述述连珠(五子棋)是有两个人在一盘棋上进行对抗的竞技运动。在对局开始时,先由用户选择哪方先开局,先开局一方将一枚棋子落在一点上,然后由另一方在对方棋周围的交叉点上落子,如此轮流落子,直到某一方首先在棋盘的直线、横线或斜线上形成连续的五子则该方就算获胜。此时,

7、算法结束。当有任何一方想退出时,都可在算法中实现。1.21.2需求需求分析分析(1) 、输出游戏规则并由用户决定是否遵守并开局。(2) 、要求动态画出棋盘大小。(3) 、画棋子并确定其颜色。(4) 、玩家轮流下棋。(5) 、判断键盘输入哪个键按规则执行操作(6) 、判断谁先落棋。(7)判断赢家1.1.3 3 概概要设要设计计流程图:YY YN NY YN NY YN NY Y1.41.4详细详细设计设计1.1.5 5 调调试分试分析析运行结果:屏幕显示:Please input who is first:1 or 2 当输入1时,白棋先走;当输入2时,红棋先走。屏幕显示:Pleaseinput

8、thesizeofchessbox:从键盘输入t值,则棋盘大小为t*t型。屏幕显示:Left,Right,Up,DownKEYtomove,Spacetoput,ESC-quit及棋盘,棋子,用上下左右键控制棋子向,用空格键确定棋子的落点 。当白棋赢时,显示TheWhiteWin!当红棋赢时,显示TheRedWin!遇到的问题:算法改进思想:将棋盘由原先的固定大小改进为可动态变化,由原来固定的白棋先走改进为让用户可以选择哪方先落子。2 2源源程序程序#include#include#include#include#include#define LEFT 0x4b00#define RIGHT

9、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(int x,int y,int color);void change();void judgewho(int x,int y);void judgek

10、ey();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. DO NOT press Space outside of the draw_boxnn“);printf(“Do you accept th

11、e 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“,printf(“nnwho is the frist:1 or 2? “); while(1) scanf(“%d“,if(flag!=1else 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=1;i-)if(boxij=0) draw_cicle(step_x,step_y,LIGHTBLUE); break ;if(is) break ;elsefor(i=step_x+1

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

当前位置:首页 > 高等教育 > 大学课件

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