1、1VC 课程设计报告设计题目: 五子棋人人对战 学 院: 理学院专业班级: 信息与计算科学 班学生姓名: *学生学号: 12345指导教师: #提交时间: 2013 年 07 月 02 日成 绩:2目录第 1 章 引言 .4第 2 章 任务概述 .42.1 问题概述 .42.1.1 问题重述 .42.1.2 设计目的 .42.2 需求分析 .42.2.1 基本要求 .42.2.2 游戏功能介绍 .4第 3 章 概要设计 .43.1 功能设计 .43.2 程序结构 .43.3 基本流程 .4第 4 章 程序实现 .44.1 主要变量及函数的说明 .44.1.1 主要变量 .44.1.2 主要函数
2、 .44.2 主要功能的实现 .44.2.1 类声明 .44.2.2 棋盘初始化 .44.2.3 开始下棋 .44.2.4 判断下棋合法 .44.2.4 判断输赢 .4第 5 章 结果与总结 .45.1 运行结果截图 .45.2 总结 .4参考文献: .43第 1 章 引言通过一学期的课程学习,对和 Visual2010 C+编程环境有了一定程度的了解。根据课程要求,利用两周时间对所学知识加以巩固学习,用 c+编译小游戏,初步了解程序设计与软件实现的思想。该设计通过对“五子棋人人对战”游戏的编写对所学知识复习巩固。程序设计过程中,先对问题进行了全面分析,将“五子棋人人对战”划分成几个子问题后,
3、逐步细化,最终归结成一个个函数的实现。第 2 章 任务概述2.1 问题概述2.1.1 问题重述设计一个五子棋,能实现人人对战。 (棋盘大小为 13X13)2.1.2 设计目的独立地利用所学的 C+程序设计和 Visaul C+6.0 编程环境编写程序。2.2 需求分析2.2.1 基本要求明确五子棋游戏的游戏规则,编写程序实现其功能。2.2.2 游戏功能介绍为了更好地实现游戏,首先必须明确“五子棋”的游戏规则。大体的规则可描述如下:(1)进入主界面后,选择开始游戏。(2)开始游戏后,一方开始下棋。(3)再由另一方下棋(4)判断输赢。4(5)玩家选择结束游戏时,结束游戏。第 3 章 概要设计3.1
4、 功能设计程序主要实现的功能如下所述:(1)启动程序,出现主界面。(2)显示棋盘。(3)选择开始游戏。(4)有一方开始下棋,并判断下棋是否合理。(5)判断输赢。(6)有另一方开始下棋,并判断下棋是否合理。(7)判断输赢。(8)选择是否继续。(9)游戏结束后,退出游戏。3.2 程序结构程序的结构如下图所示:五子棋人人对战启动游戏 开始游戏 判断输赢 结束游戏启动界面游戏开始开始落子交换下棋图 3.2 程序结构 53.3 基本流程根据游戏规则及其结构图,画出如下程序基本流程图:开始主界面显示棋盘玩家O 下棋判 断输入是否越 界N OY E S判断下棋的位置是否已有棋子N OY E S是否赢棋N O
5、Y E S玩家X 下棋判 断输入是否越 界Y E SN O判断下棋的位置是否已有棋子N OY E S是否赢棋N OY E S是否继续结束N OY E S图 3.3 基本流程第 4 章 程序实现4.1 主要变量及函数的说明4.1.1 主要变量char board1414; /棋盘大小6int x; /下棋的横坐标int y; /下棋的列坐标int count; /下棋的个数int a; /交换下棋4.1.2 主要函数void MainForm(); /显示主菜单void PlayEplain(); /游戏说明void PrintBoard(); / 打印初始棋盘void InitialBoard
6、();/初始化棋盘void PlayChess(); /开始下棋wuziqi(); /初始化 a 和 count,a 是交换下棋,count 记录棋盘是否下满int CheckWin(int x,int y); /判断赢棋4.2 主要功能的实现4.2.1 类声明class wuziqipublic:void MainForm(); /显示主菜单void PlayEplain(); /游戏说明void PrintBoard(); /打印初始棋盘void InitialBoard(); /初始化棋盘void PlayChess(); /开始下棋wuziqi(); /初始化 a 和 count,a
7、是交换下棋,count 记录棋盘是否下满private:int CheckWin(int x,int y); /判断赢棋char board1313; int x; /下棋的横坐标int y; /下棋的列坐标int count; /计数判断是否满int a; /判断谁落子;74.2.2 棋盘初始化Void wuziqi:InitialBoard() /初始化棋盘,将所用的位置设置为空格for(i=1;iMXA;i+)for(i=1;iMXA;i+)将所有下棋的格线设为空格Void wuziqi:PrintBoard() /打印棋盘利用制表符打印棋盘( )4.2.3 开始下棋void PlayC
8、hess(); /开始下棋由 a 的值决定下棋方If(a=0)一方下棋Else另一方下棋用坐标决定下棋位置4.2.4 判断下棋合法如果输入是否越界如果 boardxy= 空格 就可以下棋boardxy 设为 如果 boardxy是否已经有棋子 输出 “输入错误 ,此位置已经有棋子了,请重新输入!“endl;continue;返回去继续输入。如果输入是否越界cout“ 输入位置超出范围,请重新输入!“endl;PrintBoard();打印棋盘返回重新输入4.2.5 判断输赢int CheckWin(int x,int y); /判断赢棋当一方有五个棋子连成线时赢,用-1 和 1 判断输赢,当棋盘满是为平局。 8第 5 章 结果与总结5.1 运行结果截图1.启动画面图 5-1 启动画面2.游戏说明图 5.2 游戏说明 93.退出游戏图 5.3 退出游戏4 进入游戏图 5-4 进入游戏105输入越界图 5-5 输入超出范围6。已有棋子图 5-6 已有棋子7游戏进行