李娜中国梦想秀-
X X X X
大
学
《
C++
语言程序设计》课程设计(论文)
题目:
五子棋游戏
院(系)
:
专业班级:
学
号:
学生姓名:
指导教师:
教师职称:
起止时间:
课程设计(论文)任务及评语
院(系)
:
教研室:
学
号
课程设计
(论文)
题目
程序设计的任务与要求:
(
1
)
.
掌握面向对象 程序设计语言
C++
的基本语法
五子棋游戏
学生姓名
专业班级
课
程设
计
(
论
文
)
任
务
(
2
)
.
掌握
C++
面向对象设计的思想
(
3
)
.
掌握
VC++6.0
与
DEV C++
开发工具的使用
(4
)
.
运用标准
C++
规范设计应用程序
设计过程中,要严格 遵守设计的时间安排,听从指导教师的指导。
正确地完成上述内容,规范完整地撰写出设计报告。
成绩:
指导教师签字:
年
月
日
指
导
教
师
评
语
及
成
绩
xxxx
大
学
课
程
设
计
说
明
书(论
文)
目
录
第
1
章
课程设计目的与要求
.
... ...............................................
1
1.1
设计目的
.
.......... .................................................
1
1.2
实验环境
................ ............................................
1
1.3
预备知识
................ ............................................
1
1.4
设计要求
................ ............................................
1
第
2
章
课程设计内容
.
.............................................. ..........
2
2.1
课题描述
.
................................................. ..........
2
2.2
系统设计
.
................................................. ..........
2
2.2.1
功能分析
... .................................................. .
2
2.2.2
面向对象设计
.......... ........................................
3
2.2.3
类成员描述
....................... .............................
6
2.3
程序实现
.......................... ..................................
6
2.3.1
源码分析
........................ ..............................
6
2.3.2
运行结果
........................ .............................
12
第
3
章
总结
.
.......... .................................................. ...
13
参考文献
.
............. .................................................. ...
14
xxxx
大
学
课
程
设
计
说
明
书(论
文)
第
1
章
课程设计目的与要求
1.1
设计目的
将理论教学中涉 及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据
结构作一比较和总结,
结合设 计题目进行综合性应用,
对所学知识达到融会贯通的程度。
通过课程设计,学生在下述各方面的能力应该得到锻炼:
(
1
)进 一步巩固、加深学生所学专业课程《
C++
语言教程》的基本理论知识,理论联系
实际 ,进一步培养学生综合分析问题,解决问题的能力。
(
2
)
全面考 核学生所掌握的基本理论知识及其实际业务能力,
从而达到提高学生素质的
最终目的。
(
3
)利用所学知识,开发小型应用系统,掌握运用
C++
语言编写 调试应用系统程序,训
练独立开发应用系统,进行数据处理的综合能力。
(
4
)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。
(
5
)掌握面向对象程序设计的方法。
(
6
)熟 练掌握
C++
语言的基本语法,灵活运用各种数据类型。
(
7
)进一步掌握在集成环境下如何调试程序和修改程序。
1.2
实验环境
硬件要求能运行
Windows
操作系统的微机系统。
C++
语言应用程序开发软件使用:
VC++
系统,或其他
C++
语言应用程序开发软件。
1.3
预备知识
熟悉
C++
语言程序设计的基本知识及< br>VC++
编辑器的使用方法。
1.4
设计要求
1.
仔细分析设计题目,画出程序流程图,编写程序源代码。
2.
积极上机调试源程序,增强编程技巧与调程能力。
3.
认真书写课程设计预习报告
,
课程设计说明书。
4.
遵守课程设计要求和机房管理制度,服从指导教师的安排,确保课程设计的顺利完成
课程设计内 容。
1
xxxx
大
学
课
程
设
计
说
明
书(论
文)
第
2
章
课程设计内容
2.1
课题描述
五子棋游戏的实现需要一定的人工智能,让电脑会思考问题。电脑通过思考 后自动
做出反应。做五子棋游戏可以让我对人工智能及
MFC
有初步的认识。同时更锻 炼了
C++
的实战能力,为以后这方面的发展打下基础,随后详细介绍了五子棋游戏的开发过程 。
本系统将实现下棋中可能出现的意外进行了处理。这样五子棋休闲游戏将不在是一
个功能单一界面枯燥的无声游戏,而是一个较完善的休闲游戏。
2.2
系统设计
2.2.1
功能分析
(
1
)用函数画出棋盘,画出棋子
(
2
)实现人 工智能让电脑具有“思考”能力,实现人机对弈。玩家先走执白子,电
脑自动后手下棋,执黑子。玩家执 白子
#define White 0
白子在数组位置定义为
0;
电脑
黑子
#define
Black
1
数组位置定义为
1;
无子位置
#define
Empty
-1
数组位置定义为
-1
。
本
程
序
将
棋
盘
设
为
一
个
二
维
数
组
,
每
次
点
击
鼠
标
左
键
通
过
void
CMyView ::OnLButtonDown(UINT nFlags, CPoint point)
反馈点击坐标信息,从而改变
二维数组相应位置上的值,再在
void
CMyView::OnDraw(CDC*
pDC)
函数中根据数组的值
绘制出棋子。
玩家先手下棋后判断此时棋盘输赢情况
进而
SendMessage(WM _COMPUTER);
发送消
息让电脑思考下棋。电脑思考分情况:当棋盘上只有一个棋子时
1==m_Unit
,电脑会生
成
八
个
随
机
数
根
据
生
成
的
随
机
数
随
机
在
玩
家
棋
子
周
围
下
一
步
棋
。
玩
家
下
棋
时
m_IsManOr der=TRUE;
当玩家落棋以后
m_IsManOrder=FALSE;
此时玩 家不能在下棋,电脑
开始下棋,电脑下完棋后
m_IsManOrder=TRUE
人 又可以下棋。这样就实现了人机交替下
棋。
(
3
)倒计时功能
通过
SetTimer(1,1000 ,NULL);
函数每
1
秒响应一次
OnTimer
,定时器标号为
1
。通
过
KillTimer(1);
关闭
1
号定 时器。
倒计时有四种可选项:
OnLevtime1()
、
OnLevtime2()
、
OnLevtime3()
、
OnNoti me()
这
四
个
函
数
分
别
对应
3 0
秒
、
一
分
钟
、五
分
钟
和
不
限
时
这
四种
情
况
。
在
void
CMyView::OnTimer(UINT nIDEvent)
函数中,当时间
<=10
秒时,开始读秒。并当时间减
2
xxxx
大
学
课
程
设
计
说
明
书(论
文)
少至
0
是判定玩家输。
(
4
)坐标显示
实现显示上一步坐标功能比较简单,直接根据m_ChePos.x
和
m_ChePos.y
来决定输
出的坐标。只是 当
m_ChePos.x
时直接输出数字即可,但
m_ChePos.y
时要 用
switch
(
m_ChePos.y
)转换一步,将数字对应的字母A~O
输出即可
2.2.2
面向对象设计
CAbo utDlg
继承了
CDialog
类。对话框有两类:模态对话框和非模态对话框。模 态
对话框在应用继续进行之前必须关闭。非模态对话框允许用户执行另外的操作而不必取
消或删 除该对话框
一个
CDialog
对象是对话框模板与一个
CDia log
派生类的组合。使用对话框编辑器
创建对话框并存入资源之中,然后使用
Cla ssWizard
创建一个
CDialog
派生类。同其它
窗口一样,对话框 从
Windows
中获取信息。在对话框中会对来自对话框控件的处理消息
感兴趣, 因为它说明了对话框是如何与用户交互的。
ClassWizard
观察对话框每个控件
可能产生的消息,可以选择你所希望处理的消息。
ClassWizard
将适当的消息映射器入
口和消息处理成员函数加到一个新类中。
图
2.1 CAboutDlg
类图
CMyApp
继承了
CWinApp
类。通过它来继承
Windows
应用程序对象。
应 用程序对象提
供了初始化应用程序(以及它的每一个实例)和运行应用程序所需的成员函数。
每个使用微软基础类库的应用程序都只能包含一个从
CWinApp
继承的对象。当
Windows
调用
WinMain
函数时,
这个对 象在其它
C++
全局对象都已经生成并且可用之后才
被创建,
WinMain
函数是由微软基础类库提供的。将
CWinApp
对象定义为全局的。当从
C WinApp
继承应用程序类的时候,
应重载
InitInstance
成员 函数以创建应用程序的主窗
口对象。
3
xxxx
大
学
课
程
设
计
说
明
书(论
文)
图
2.2 CMyApp
类图
图
2.3 CMyView
类图
整体
UML
类图如下:
-
结束
1
CMy ChessApp
-
结束
4
*
-
结束
6
*
1
-
结束
2
CSplashWindow
*
CMy ChessDlg
1
1
3
-
结束
-
结束
5
图
2.4
整体的
UML
类图
4
xxxx
大
学
课
程
设
计
说
明
书(论
文)
总体流程图
主循环控制模块:控 制下棋顺序,当轮到某方下子时,负责将程序转到相应的模块
中去,主要担当一个调度者的角色。这个五 子棋程序是用键盘控制下棋。
五子棋流程图如
2.5
所示
开始
白方下子
判断该位置
是否有棋
找另一位置
有
是
白方下子
判断白方
是否胜出
否
黑方下子
跳出白方胜出
是
选择是否
重新开局
游戏结束
判断该位置
是否有棋
找另一位置
有
黑方下子
无
判断黑方
是否胜出
跳出黑方胜出
是
图
2.5
五子棋的流程图
5
李娜中国梦想秀-
李娜中国梦想秀-
李娜中国梦想秀-
李娜中国梦想秀-
李娜中国梦想秀-
李娜中国梦想秀-
李娜中国梦想秀-
李娜中国梦想秀-
本文更新与2021-01-27 06:06,由作者提供,不代表本网站立场,转载请注明出处:http://www.xapfxb.com/yuer/429897.html
-
上一篇:基于EGE图形库五子棋游戏实验报告
下一篇:java 含类图 五子棋小游戏