关键词不能为空

当前您在: 首页 > 育儿 >

c++课程设计五子棋游戏

作者:陕西保健网
来源:http://www.xapfxb.com/yuer
更新日期:2021-01-27 05:53

梅毒自测试纸-

2021年1月27日发(作者:詹徽)



















五子棋游戏

The Game of Gobang




学院名称:






机械工程学院







专业班级:






测控

10xx

学生姓名:


x
指导教师姓名:


xx

指导教师职称:

副教授




2012

6


目录

第一章

需求分析
..................................... .................................................. .................................................. . 5

1.1
系统概述
...................... .................................................. .................................................. ............... 5

1.1.1
概述:
........ .................................................. .................................................. ...................... 5

1.2
系统运行环境
.................................................. .................................................. .............................. 5

1.2.1
运行环境
.......................................... .................................................. .................................. 5

1.3功能需求描述
...................................... .................................................. .......................................... 6
< br>1.3.1
功能需求
.............................. .................................................. .............................................. 6

第二章

总体设计
.................. .................................................. .................................................. .................. 6

2.1
开发与设计的总体思想

.
......................................... .................................................. ...................... 6

2.1.1
总体设计思路

.
................. .................................................. .................................................. 6

2.1.2
屏幕的组成

.
............ .................................................. .................................................. ......... 7

2.1.3
形状的组成

.
.. .................................................. .................................................. ................... 8

2.1.4
形状的统一
< br>.
.......................................... .................................................. ............................. 8

第三章

概要设计
..................................... .................................................. .................................................. . 9

3.1
系统流程图
..................... .................................................. .................................................. ............ 9

3.2
软件功能模块
......... .................................................. .................................................. .................. 10

3.3
系统功能模块
.. .................................................. .................................................. ..........................11

第四章

详细设计
..................................... .................................................. ................................................11

4.1.
界面的设计
....................... .................................................. .................................................. ........11

4.1.1
总体界面的设计

.
. .................................................. .................................................. ...........11

4.1.2
界面棋子的设计

................................................. .................................................. ..............11

4.2.
显示界面的准备
...... .................................................. .................................................. ................. 13

4.2.1
在窗体类中添加存放黑白棋两维数组和背景棋盘、黑棋、白棋位图对象
................ 13

4.2.2
在窗体构造函数中初始化
wb
,装入棋盘、黑棋、白棋位图

...................................... 13

4.3.
显示棋盘和棋子代码

.
.............. .................................................. ................................................ 13

4.4.
轮流下子代码
.................... .................................................. .................................................. ..... 14

4.5.
判断输赢
............... .................................................. .................................................. ................. 17

4.5.1
判断是否白棋胜代码

.
.............. .................................................. ....................................... 17

4.5.2
判断是否黑棋胜代码

.
.............. .................................................. ....................................... 18

4.5.3
判断是否平局代码

.
............... .................................................. .......................................... 19

4.6.
悔棋
.............................. .................................................. .................................................. .......... 19

4.7.
重新开始
.......... .................................................. .................................................. ...................... 20

4.8.
背景音乐
..................................... .................................................. ............................................. 21

4.9.
保存读取游戏文件

.
........ .................................................. .................................................. ........ 21

4.9.1
保存文件
:

................................................. .................................................. ....................... 22

4.9.2
读取文件
:

.
.............. .................................................. .................................................. ....... 23

第五章

测试分析
.......... .................................................. .................................................. .......................... 24

结论和心得体会
.................................................. .................................................. ...................................... 25




.............................. .................................................. .................................................. .......................... 26

参考文献:
.. .................................................. .................................................. ............................................ 27



1
课程设计任务书

一、

课程设计目的

课程设计是工科各专业的主要实践性教学环节之一,
是围绕一 门主要基础课或专业
课,运用所学课程的知识,结合实际应用设计而进行的一次综合分析设计能力的训练 。

课程设计旨在培养学生在本课程范围内,
初步掌握解决实际应用问题时所应具有的
查阅资料、综合运用所学知识的能力,为课程设计及今后从事专业工作打下基础。

二、

课程设计的内容及要求

利用所学的面向对象及
C+ +
编程知识和技巧,通过布置具有一定难度的程序设计题
目,并且要求学生独立完成所布置题目 ,在分析设计过程中,
要求学生养成良好的编程
习惯,学会分析简单的实际问题,并能利用所学 的知识建立系统的逻辑结构,
学会简单
的调试技巧和方法。根据系统的功能要求,要求学生逐步 完成应用程序的设计,
具体要
求为:

1
、按规定的时间及要求上机。

2
、设计方案正确,正确划分所选课题的系统功能模块。

3
、系统设计要尽量实用,数据与功能分析详细。

4
、要求
C++
编码简洁、稳定、高效。

5
、独立查阅资料,认真书写课程设计说明书。

三、

进度安排

此次课程设计时间为两周,分五个阶段完成:

1
、分析设计阶段:学生自主学习和钻研问题,明确设计要求,找出实现方法,按照
需求分析、总体设计 、详细设计这几个步骤进行。这一阶段前第
1-3
天完成。

2
、编 程调试阶段:根据设计分析方案编写
C++
代码,然后调试该代码,实现课题要
求的功 能。这一阶段在第
4-7
天完成。

3
、总结报告阶段:总结设计工 作,写出课程设计说明书
,
要求学生写出需求分析、
总体设计、详细设计、编程测试的 步骤和内容。这一阶段在第
8-9
天完成。

4
、考核阶段。这一阶段在第
10
天完成。

四、

课程设计说明书要求

课程设计说明书包括课程设计的目的、
意义和任务,软 件开发工具介绍、任务分析、
总体设计、详细设计、编程、调试的步骤和内容、课程设计总结、参考资料 等,不符合

2
以上要求者,则本次设计以不及格记。具体格式参看《江苏大学课程 设计说明书写作规
范》

五、

课程设计题目:设计一个五子棋游戏

六、

上机时间及地点

地点:计算中心
NA1 NA2
上机时间:

19




星期四


1 2 3 4










星期五



1 2 3 4 5 6 7 8
20




星期一



5 6 7 8














星期二









星期三


1 2 3 4













星期四

星期五


1 2 3 4


七、

答辩时间


20


星期六




1 2 3 4 5 6 7 8

1 2 3 4 5 6 7 8

3





五子棋游戏

摘要

此课程设计的目的是为了达到熟练掌握
C++
语言的基本知识和
C++
调试技能;基
本掌握面向对象程序设计的基本思路和方法;
能够利用所学的基本知识和技能,
解决简
单的面向对象程序设计问题;培养综合利用
C
++语言进行程序设计的 能力,主要是培
养利用系统提供的标准图形函数进行创新设计。
该游戏软件在
Wind ows
系统为玩家提供
传统五子棋游戏的基本功能,在这简单的五子棋中,玩家通过鼠标进行两 个人的游戏。
游戏的主战场为
15

15
列的棋盘,
初始状 态棋盘上无落子,进入游戏后,默认黑棋先
下,也可由玩家选择先下的棋子,然后轮流落子,
一 旦有一方的棋子在某一方向上构成
连续的五个棋子,
则该方胜利,
游戏结束并重新开始 ,
如果有输赢,
则输出谁胜,
否则,
输出平局的信息框。
游戏还有悔 棋和重新开始的的功能。
另外,
在游戏中还有背景音乐,
运行时自动播放,也可通过工 具栏按钮关闭。还可以保存和读取游戏文件功能。

关键词


五子棋;

视窗操作系统;

悔棋;

双人游戏。

The Game of Gobang
Abstract


This course is designed in order to master the basic knowledge of the c + + language
testing skills; and c + + Basic grasp of object oriented programming basic train of thought and
method; Can use of my knowledge of the basic knowledge and skills, solvesimple object-oriented
program design problem; Using c + + language training comprehend sive program design ability,
is
mainly
use
the
system
to
provide
the
training
of
standard
graphics
functions
of
innovation
design. This game software on Windows system for players with traditional renju game, the basic
function
of
in
this
simple
renju
players
through
the
mouse,
two
personal
game.
The
main
battlefield games for line 15 to 15 listed in the board. The game is over, if a loser, the output who
wins, otherwise, the output of the draw information box.
Keywords:


Gobang;


Windows System;


Takeback;



the game of

Two people playing





4
引言

随着经济时代的发展
,
人们的精神压 力越来越大,精神上得不到应有的放松,精神
生活得不到极大的满足,
随着计算机技术的飞速发 展,
计算机已逐渐成为人们办公不可
或缺的工具,
因此及时的开发一些应用于计算机上 的小型游戏软件,
以供人们在办公的
闲暇时间得到充分的休闲娱乐。
而棋类因为其兼具 动脑并且娱乐的双重功效,
并且十分
符合现代式生活,
因此已经得到越来越多人的欢迎 ,
为此我们开发一个简单的五子棋游
戏,
开发此五子棋游戏软件的目的,
主要 是供办公人员与同事一起休闲娱乐,
增进友谊、
减轻疲劳,以提高工作效率,创造更多的社会财 富,造福人类。

查阅有关程序设计的案例资料,
进一步理解程序设计模块化的思想,
并利用此思想,
根据对程序设计课程的学习,
编写一个简单的游戏软件系统。
通过本设计可以加深理解
利用程序设计思想开发一个系统的整个流程,
提高分析问题、
解决问题和实际动手的能
力。在下面的各章中我们将以开发一个五子棋游戏为例
,
谈谈 其开发过程和所涉及到的
问题及解决方法。

第一章

需求分析

1.1
系统概述

1.1.1
概述:

本程序是一款棋类益智游戏程序,名为五子棋游戏,是采 用
C
语言编写的可在
WINDOWS
系统下运行的娱乐游戏平台。
该程序面向广大棋类游戏的爱好者,
能够提供方
便,实现基本智能控制的游戏环境。棋盘由若干 网格构成,初始状态棋盘上无落子,玩
家可以通过鼠标在棋盘的相应位置下子,一方为白色,另一方为黑 色,先下的为黑子。
游戏过程中,
一旦有一方的棋子在某一方向上先构成连续的五个棋子,不论横、
竖或斜,
就会在屏幕上显示是谁赢了比赛。

1.2
系统运行环境

1.2.1
运行环境

(1 )
硬件环境。本系统适用于那种
Inter386
以上计算机,内存容量为
1 28M
,应配

5
备键盘、鼠标、显示器等外部设备。

(2)
软件环境。本系统的设计采用
Visual C++6.0
编写。在
Windows
XP SP2
环境下
测试通过。

(3)
只要计算机具有
Visual C++6.0


本游戏软件在
Windows
平台下都可以运行。

1.3
功能需求描述

1.3.1
功能需求

五子 棋是一种大众喜爱的游戏,
其规则简单,
变化多端,
非常富有趣味性何消遣性,
是一种两人对弈的纯策略型棋类游戏,是起源于
中国
古代的传统
黑白棋
种之 一。发展于
日本
,流行于
欧美
。容易上手,老少皆宜,而且趣味横生,引人入 胜;不仅能增强思维
能力,提高
智力
,而且富含
哲理
,有助于修身养 性。近来随着计算机的快速发展,各种
棋类游戏被纷纷请进了电脑,
使得那些喜爱下棋,
又常常苦于没有工具的棋迷们能随时
过足棋瘾。



在这里我也 设计了一个较简单的五子棋游戏,
这个游戏,
不仅可以满足游戏爱好
者对游戏的要求, 同时我们增加了美观因素,让游戏有一个比较美观的界面,
满足我们
游戏爱好者的视觉要求,< br>同时有悔棋和重新清盘开始的功能,
更加方便了玩家的操作和
游戏的有趣性。同时,这个游戏还增加了背景音乐的功能,让玩家在玩游戏的同时还可
以聆听音乐,
使身心放松,
如果不需要,
也可以通过菜单栏或工具栏中的按钮将其关闭。
另外,也可以保存和读取 游戏文件。

第二章

总体设计

2.1
开发与设计的总体思想

2.1.1
总体设计思路

棋盘设计为
15*15
格,初始状态棋盘的为空,玩家黑子先走,轮流落子,当一方连
成五子或下满棋盘时,游戏结束并重新开始(连成五子的一方获胜,
下满棋盘为和棋)

当游戏一方胜利后显示胜利信息。从程序表面看,这是一个二维平面图,
所以数据用二
维数组来表示,数组两个下标可以表示棋盘上的位置,用坐标表示位置,
数组元素的值
代表棋 格上的状态,共有三种情况,分别是
0
代表空格,
1
代表黑棋,
2< br>代表白棋。这

6
样程序的主要工作是接收棋手鼠标按键操作,
棋手 用鼠标控制光标移动,
按键表示落子。
一旦接收到按键,说明棋手落子,先判断是否是有效位置 ,
也就是说已经有棋子的位置
不能重叠落子。落子成功后,马上判断该棋盘上是否有相同颜色的 棋子连成五子,
如果
连成五子,则游戏结束,输出相应的信息。按确认后,自动调用清盘函数, 此时清盘重
新开始,由另一家先走。在游戏中,如果玩家悔棋,则按下悔棋按钮,调用悔棋函数,
将刚下的棋去掉,重下一子。按下重新开始菜单,可清盘使游戏重新开始。

2.1.2
屏幕的组成

一个游戏一定要有一个界面供游戏者对游戏控制。

这个界面中要包含让游戏者更加清 楚游戏状态的信息,比如,白方要下子时,
必须
要先看一看所有黑子的排列情况,
决定 是防守还是进攻,
这关系着玩家要如何放置自己
的棋子,
让整体有个更加的布局,有利 于游戏的进行。
此游戏的屏幕由
15

15
列的网
格和菜单 栏、工具栏组成,背景是一张棋盘图,棋盘图和棋子图如下图:


7




2.1.3
形状的组成

每一种形状都是由五个棋子组成,比如●●●●●或○○○○○

由五个棋子排列
而成。

2.1.4
形状的统一

棋子的排列,如:●●●●●等共有
8
种形状(黑白的形状归为不同的形状)


如图形状:

黑棋的四种情况:




8
●●●●●

●○○○○

●○○○○

○○○○●

○○○○○

●○○○○

○●○○○

○○○●○

○○○○○

●○○○○

○○●○○

○○●○○

○○○○○

●○○○○

○○○●○

○●○○○

○○○○○

●○○○○

○○○○●

●○○○○

白棋的四种情况:

○○○○○

○●●●●

○●●●●

●●●●○

●●●●●

○●●●●

●○●●●

●●●○●

●●●●●

○●●●●

●●○●●

●●○●●

●●●●●

○●●●●

●●●○●

●○●●●

●●●●●

○●●●●

●●●●○

○●●●●

第三章

概要设计

3.1
系统流程图

系统流程图是对系统的大致流程进行描述,本游戏的系统流程图如下:

游戏开始

选择先下棋子

(默认黑棋先下)

重新开始

悔棋

黑白子交替落子

N
判断是否连成五子或棋盘满

Y
游戏结束



9
江苏大学测控专业编程及软件应用课程设计说明书

3.2
软件功能模块

本游戏的软件功能模块如下:

界面及显示模块

播放音乐模块

轮流下子模块

五子棋

胜负判断模块

悔棋模块

重新开始模块

保存读取游戏文件模










10
江苏大学测控专业编程及软件应用课程设计说明书


3.3
系统功能模块

系统功能模块是对系统的大致功能进行描述,本游戏的系统功能模块如下:

五子棋游
戏功能

两人基本
游戏功能

悔棋功能

重新开始
功能

播放背景
音乐功能

输赢输出

保存读取
功能


第四章

详细设计

根据上面所介绍的本系统的各个模块及其需要实现的功能,
下面详细设计如
下:

4.1.
界面的设计

4.1.1
总体界面的设计
< br>程序界面程序在启动运行时,系统会调用在资源视图中导入的围棋背景图
片,使程序界面更加友好 ,在使用上给用户一种直观方便的感觉。

4.1.2
界面棋子的设计
在资源视图中导入围棋的黑棋图片、
白旗图片,
使下子时调用此图片,
使游
戏更加直观有趣。
同时在窗口视图中添加显示透明色图片函数,
是棋子图片更加
逼真 有趣。

显示透明色图片函数如下所示:

//
显示透明色函数

void
PutBitmap(CDC
*pDC,int
x,int
y,CBitmap
*pBitmap,COLORREF
color)
{ COLORREF oldColor;

11
江苏大学测控专业编程及软件应用课程设计说明书

CBitmap bmAndBack,bmAndObject,bmAndMem,bmSave;
CDC
memDC,backDC,objectDC,saveDC,pieceDC;
BITMAP bm;

pBitmap->GetBitmap(&bm);
int nWidth=h,nHeight=ht;


CompatibleDC(pDC);
CompatibleDC(pDC);
CompatibleDC(pDC);
CompatibleDC(pDC);
CompatibleDC(pDC);

Bitmap(nWidth,nHeight,1,1, NULL);
Bitmap(nWidth,nHeight,1,1,NULL);
CompatibleBitmap(pDC,nWidth,nHeight);
CompatibleBitmap(pDC,nWidth,nHeight);

Object(&bmAndBack);
Object(&bmAndObject);
Object(&bmAndMem);
Object(&bmSave);
Object(pBitmap);

(0,0,nWidth,nHeight,&pieceDC,0,0,SRCCOPY);
oldColor=olor(color);
(0,0,nWidth,nHeight,&pieceDC,0,0,SRCCOPY);
olor(oldColor);

12

江苏大学测控专业编程及软件应用课程设计说明书

(0,0,nWidth,nHeight,&objectDC,0,0,NOTSRCCOPY);
(0,0,nWidth,nHeight,pDC,x,y,SRCCOPY);
(0,0,nWidth,nHeight,&objectDC,0,0,SRCAND);
(0,0,nWidth,nHeight,&backDC,0,0,SRCAND);
(0,0,nWidth,nHeight,&pieceDC,0,0,SRCPAINT);
pDC->BitBlt(x,y,nWidth,nHeight,&memDC,0,0,SRCCOPY) ;
(0,0,nWidth,nHeight,&saveDC,0,0,SRCCOPY);
}
4.2.
显示界面的准备

4.2.1
在窗体类中添加存放黑白棋两 维数组和背景棋盘、黑棋、白棋位图
对象

int wb[15][15];
CBitmap Board,Black,White;


//
背景棋盘、黑棋、白棋位图对象

4.2.2
在窗体构造函数中初始化
wb
,装入棋盘、黑棋、白棋位图







for(int i=0;i<15;i++)


for(int j=0;j<15;j++)
wb[i][j]=0;
//
零表示空、
1
表示黑棋、
2
表示白棋

tmap(IDB_BITMAP1);
//
装入背景位图

tmap(IDB_BITMAP2);

tmap(IDB_BITMAP3);

//
装入黑棋位图

//
装入白棋位图

4.3.
显示棋盘和棋子代码

在窗口
OnDraw
函数中添加显示棋盘和棋子代码

void CChessView::OnDraw(CDC* pDC)
{



CChessDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);

13

梅毒自测试纸-


梅毒自测试纸-


梅毒自测试纸-


梅毒自测试纸-


梅毒自测试纸-


梅毒自测试纸-


梅毒自测试纸-


梅毒自测试纸-



本文更新与2021-01-27 05:53,由作者提供,不代表本网站立场,转载请注明出处:http://www.xapfxb.com/yuer/429884.html

c++课程设计五子棋游戏的相关文章