C语言知识学习图形五子棋教学规划报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北京师范大学C语言课程设计报告
课题名称:游戏五子棋
指导教师:尹乾
课题组员:罗福莉赵帅帅何虹达院系:信息科学与技术
时间:2014.3.15-2014.4.20
摘要
五子棋是一种两人对弈的纯策略型棋类游戏,应用C语言编写程序可以在计算机上实现二人对弈五子棋功能。二人对弈五子棋程序由欢迎界面显示、游戏界面生成、光标移动与落子、判断胜负、悔棋功能、提供音效等子程序构成;程序中应用了结构体、数组、全局变量、按键处理和图形编程等元素和语句。程序通过棋盘和棋子图像生成、二人移子与落子和判断胜负等功能的实现,在计算机上实现了二人五子棋对弈。
目录
摘要 ------------------------------------------------------------ 2 第1章:需求分析 ----------------------------------------------- 4
1.1五子棋背景 ----------------------------------------------- 4
1.2 五子棋需求分析和流程设计------------------------------- 4 第2章:概要设计 ----------------------------------------------- 9
2.1 各类头文件和全局变量 ----------------------------------- 9
2.2 画面显示模块 ------------------------------------------ 10 第3章:详细设计 --------------------------------------------- 12
3.1 玩家操作模块 ------------------------------------------ 12
3.2音效提供模块------------------------------------------- 13
3.3 胜负判断模块 ------------------------------------------ 13 第4章:调试分析 --------------------------------------------- 14
4.1 图形模块----------------------------------------------- 14
4.2 玩家操作模块 ------------------------------------------ 15
4.3 胜负判断模块 ------------------------------------------ 15 第5章:用户手册 --------------------------------------------- 16 第6章:小组分工 --------------------------------------------- 17 第7章:结论与心得 ------------------------------------------- 17 第8章:源程序代码------------------------------------------ 18 附录一Color命令的使用说明------------------------------ 43
附录二ASCII 码表----------------------------------------- 43
第1章:需求分析
1.1五子棋背景
传统五子棋的棋具与围棋相同,棋子分为黑白两色,棋盘为18×18,棋子放置于棋盘线交叉点上。两人对局,各执一色,轮流下一子,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。
因为传统五子棋在落子后不能移动或拿掉,所以也可以用纸和笔来进行游戏。
1.2 五子棋需求分析和流程设计
本程序设计为人与人对弈,一方执黑棋,一方执白棋,轮流走棋,每方都试图在游戏结束前让自己的棋子五子相连,首先实现五子相连的一方获胜。程序执行过程中,要求棋盘、棋子时时可见,游戏界面有提示信息轮到何方下棋,人可以通过按键盘按键移动光标,再点击enter键摆放棋子,并且每落一子都有系统声音,创新之处是可以提供悔棋功能。
1.2.1 程序需求分析
根据功能需求,将程序分为画面显示、玩家操作、音效提供、胜负判断五个模块,以下分析各模块的需求。
画面显示模块:程序开始运行时,显示制作者和给出欢迎及退出界面;游戏开始后要求生成18×18的棋盘图像,并在棋盘上方显示欢迎信息“欢迎play our五子棋”,棋盘下方游戏显示应该轮到甲方或者乙方落子,棋盘左右显示双方操作方式,进行过程中,要求实时显示棋盘上已落下的棋子,甲方为白球,乙方为白圈;分出胜负后,要求给出游戏结束画面,并且询问用户是否需要继续游戏。
玩家操作模块:程序开始时,需玩家确定选择“人人对战”后开始游戏;游戏过程中,两个玩家通过不同的按键移动光标,选择落子;游戏进行过程中,当前玩家下棋后,另一位玩家下棋前,当前玩家可以悔棋。悔棋提示在棋盘右下方,为按键“b”。游戏结束时,有玩家选择是否开始新游戏。
音效提供模块:玩家每落一子,系统提供音效一声,增加下棋的趣味性。
胜负判断模块:实时监测棋盘上棋子,一旦某一色棋子出现五子连线,终止游戏程序,并着色连成一线的五子,棋盘下方弹出该色玩
家胜出信息。
1.2.2程序流程设计
根据程序需求分析结果,可以得出程序的总体结构图如图1,程序总体流程图如图2。
图1 五子棋总体结构图
图2 程序总体流程图
第2章:概要设计
2.1 各类头文件和全局变量
#include
#include
#include
#include
int startchoice; //
int winner; //
int player; //
Q[200][200]= {0}; //Q数组记录旗子
char button; //读入键盘输入的指令,如→