五子棋人人对战c五子棋课程设计报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VC课程设计报告

设计题目:五子棋人人对战

学院:理学院

专业班级:信息与计算科学班

学生:*****

学生学号:12345

指导教师:###

提交时间:2013年 07 月 02 日成绩:

目录

第1章引言 (4)

第2章任务概述 (4)

2.1问题概述 (4)

2.1.1问题重述 (4)

2.1.2设计目的 (4)

2.2需求分析 (4)

2.2.1基本要求 (4)

2.2.2游戏功能介绍 (4)

第3章概要设计 (4)

3.1功能设计 (4)

3.2程序结构 (4)

3.3基本流程 (4)

第4章程序实现 (4)

4.1主要变量及函数的说明 (4)

4.1.1主要变量 (4)

4.1.2主要函数 (4)

4.2主要功能的实现 (4)

4.2.1类声明 (4)

4.2.2棋盘初始化 (4)

4.2.3开始下棋 (4)

4.2.4判断下棋合法 (4)

4.2.4判断输赢 (4)

第5章结果与总结 (4)

5.1 运行结果截图 (4)

5.2总结 (4)

参考文献: (4)

第1章引言

通过一学期的课程学习,对和Visual2010 C++编程环境有了一定程度的了解。根据课程要求,利用两周时间对所学知识加以巩固学习,用c++编译小游戏,初步了解程序设计与软件实现的思想。

该设计通过对“五子棋人人对战”游戏的编写对所学知识复习巩固。程序设计过程中,先对问题进行了全面分析,将“五子棋人人对战”划分成几个子问题后,逐步细化,最终归结成一个个函数的实现。

第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)判断输赢。

(5)玩家选择结束游戏时,结束游戏。

第3章概要设计

3.1功能设计

程序主要实现的功能如下所述:

(1)启动程序,出现主界面。

(2)显示棋盘。

(3)选择开始游戏。

(4)有一方开始下棋,并判断下棋是否合理。

(5)判断输赢。

(6)有另一方开始下棋,并判断下棋是否合理。

(7)判断输赢。

(8)选择是否继续。

(9)游戏结束后,退出游戏。

3.2程序结构

程序的结构如下图所示:

图3.2程序结构

3.3基本流程

根据游戏规则及其结构图,画出如下程序基本流程图:

图3.3基本流程

第4章程序实现

4.1主要变量及函数的说明

4.1.1主要变量

char board[14][14]; //棋盘大小

int x; //下棋的横坐标

int y; //下棋的列坐标

int count; //下棋的个数

int a; //交换下棋

4.1.2主要函数

void MainForm();

//显示主菜单

void PlayEplain();

//游戏说明

void PrintBoard();

// 打印初始棋盘

void InitialBoard();

//初始化棋盘

void PlayChess();

//开始下棋

wuziqi();

//初始化a和count,a是交换下棋,count记录棋盘是否下满

int CheckWin(int x,int y)

; //判断赢棋

4.2主要功能的实现

4.2.1 类声明

class wuziqi

{

public:

void MainForm(); //显示主菜单

void PlayEplain(); //游戏说明

void PrintBoard(); //打印初始棋盘

void InitialBoard(); //初始化棋盘

void PlayChess(); //开始下棋

wuziqi(); //初始化a和count,a是交换下棋,count记录棋盘是否下满

private:

int CheckWin(int x,int y); //判断赢棋

char board[13][13];

int x; //下棋的横坐标

int y; //下棋的列坐标

int count; //计数判断是否满

int a; //判断谁落子

};

4.2.2棋盘初始化

Void wuziqi::InitialBoard() //初始化棋盘,将所用的位置设置为空格

for(i=1;i

{

for(i=1;i

{将所有下棋的格线设为空格}

}

Void wuziqi::PrintBoard() ///打印棋盘

利用制表符打印棋盘(┏┳┓┣╋┫┛┻┗)

4.2.3开始下棋

void PlayChess(); //开始下棋由a 的值决定下棋方

If(a==0)

一方下棋

Else

另一方下棋

用坐标决定下棋位置

4.2.4判断下棋合法

如果输入是否越界

{

如果board[x][y]==' 空格'就可以下棋

{

board[x][y] 设为○

}

如果board[x][y]是否已经有棋子

{

输出 "输入错误,此位置已经有棋子了,请重新输入!"<

continue;返回去继续输入。

}

}

如果输入是否越界

{

cout<<" 输入位置超出围,请重新输入!"<

PrintBoard();打印棋盘

返回重新输入

}

4.2.5判断输赢

int CheckWin(int x,int y); //判断赢棋

当一方有五个棋子连成线时赢,用-1和1判断输赢,当棋盘满是为平局。

相关文档
最新文档