C++ 五子棋游戏论文.docx
《C++ 五子棋游戏论文.docx》由会员分享,可在线阅读,更多相关《C++ 五子棋游戏论文.docx(16页珍藏版)》请在三一办公上搜索。
1、C+ 五子棋游戏论文X X X X 大 学 C+语言程序设计课程设计 题目: 五子棋游戏 院: 专业班级: 学 号: 学生姓名: 指导教师: 教师职称: 起止时间: 课程设计任务及评语 院: 教研室: 学 号 课程设计题目 程序设计的任务与要求: .掌握面向对象程序设计语言C+的基本语法 五子棋游戏 学生姓名 专业班级 课程设计任务 .掌握C+面向对象设计的思想 .掌握VC+6.0与DEV C+ 开发工具的使用 (4). 运用标准C+规范设计应用程序 设计过程中,要严格遵守设计的时间安排,听从指导教师的指导。正确地完成上述内容,规范完整地撰写出设计报告。 成绩: 指导教师签字: 年 月 日 指
2、导教师评语及成绩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 设计目的 将理论教
3、学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。 通过课程设计,学生在下述各方面的能力应该得到锻炼: 进一步巩固、加深学生所学专业课程C+语言教程的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。 全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。 利用所学知识,开发小型应用系统,掌握运用C+语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。 对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。 掌握面向对象程
4、序设计的方法。 熟练掌握C+语言的基本语法,灵活运用各种数据类型。 进一步掌握在集成环境下如何调试程序和修改程序。 1.2实验环境 硬件要求能运行Windows 操作系统的微机系统。C+语言应用程序开发软件使用:VC+ 系统,或其他C+语言应用程序开发软件。 1.3预备知识 熟悉C+语言程序设计的基本知识及VC+编辑器的使用方法。 1.4设计要求 1.仔细分析设计题目,画出程序流程图,编写程序源代码。 2.积极上机调试源程序,增强编程技巧与调程能力。 3.认真书写课程设计预习报告,课程设计说明书。 4.遵守课程设计要求和机房管理制度,服从指导教师的安排,确保课程设计的顺利完成课程设计内容。 1
5、 xxxx 大 学 课 程 设 计 说 明 书 第2章 课程设计内容 2.1 课题描述 五子棋游戏的实现需要一定的人工智能,让电脑会思考问题。电脑通过思考后自动做出反应。做五子棋游戏可以让我对人工智能及MFC有初步的认识。同时更锻炼了C+的实战能力,为以后这方面的发展打下基础,随后详细介绍了五子棋游戏的开发过程。 本系统将实现下棋中可能出现的意外进行了处理。这样五子棋休闲游戏将不在是一个功能单一界面枯燥的无声游戏,而是一个较完善的休闲游戏。 2.2 系统设计 2.2.1功能分析 用函数画出棋盘,画出棋子 实现人工智能让电脑具有“思考”能力,实现人机对弈。玩家先走执白子,电脑自动后手下棋,执黑子
6、。玩家执白子#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);发送消息让电脑思考下棋
7、。电脑思考分情况:当棋盘上只有一个棋子时1=m_Unit,电脑会生成八个随机数根据生成的随机数随机在玩家棋子周围下一步棋。玩家下棋时m_IsManOrder=TRUE;当玩家落棋以后m_IsManOrder=FALSE;此时玩家不能在下棋,电脑开始下棋,电脑下完棋后m_IsManOrder=TRUE人又可以下棋。这样就实现了人机交替下棋。 倒计时功能 通过SetTimer(1,1000,NULL);函数每1秒响应一次OnTimer,定时器标号为1。通过KillTimer(1);关闭1号定时器。 倒计时有四种可选项:OnLevtime1、 OnLevtime2 、OnLevtime3、 OnNo
8、time这四个函数分别对应30秒、一分钟、五分钟和不限时这四种情况。 在void CMyView:OnTimer(UINT nIDEvent) 函数中,当时间=10秒时,开始读秒。并当时间减2 xxxx 大 学 课 程 设 计 说 明 书 少至0是判定玩家输。 坐标显示 实现显示上一步坐标功能比较简单,直接根据m_ChePos.x和m_ChePos.y来决定输出的坐标。只是当m_ChePos.x时直接输出数字即可,但m_ChePos.y时要用switch转换一步,将数字对应的字母AO输出即可 2.2.2面向对象设计 CAboutDlg继承了CDialog类。对话框有两类:模态对话框和非模态对话
9、框。模态对话框在应用继续进行之前必须关闭。非模态对话框允许用户执行另外的操作而不必取消或删除该对话框 一个CDialog对象是对话框模板与一个CDialog派生类的组合。使用对话框编辑器创建对话框并存入资源之中,然后使用ClassWizard创建一个CDialog派生类。同其它窗口一样,对话框从Windows 中获取信息。在对话框中会对来自对话框控件的处理消息感兴趣,因为它说明了对话框是如何与用户交互的。ClassWizard观察对话框每个控件可能产生的消息,可以选择你所希望处理的消息。ClassWizard 将适当的消息映射器入口和消息处理成员函数加到一个新类中。 图2.1 CAboutDl
10、g类图 CMyApp继承了CWinApp类。通过它来继承Windows应用程序对象。应用程序对象提供了初始化应用程序和运行应用程序所需的成员函数。 每个使用微软基础类库的应用程序都只能包含一个从CWinApp继承的对象。当Windows调用WinMain函数时,这个对象在其它C+全局对象都已经生成并且可用之后才被创建,WinMain函数是由微软基础类库提供的。将CWinApp对象定义为全局的。当从CWinApp继承应用程序类的时候,应重载InitInstance成员函数以创建应用程序的主窗口对象。 3 xxxx 大 学 课 程 设 计 说 明 书 图2.2 CMyApp类图 图 2.3 CMy
11、View类图 整体UML类图如下: -结束1CMyChessApp-结束4*-结束6*1-结束2CSplashWindow*CMyChessDlg113-结束-结束5图2.4 整体的UML类图 4 xxxx 大 学 课 程 设 计 说 明 书 总体流程图 主循环控制模块:控制下棋顺序,当轮到某方下子时,负责将程序转到相应的模块中去,主要担当一个调度者的角色。这个五子棋程序是用键盘控制下棋。 五子棋流程图如2.5所示 开始 白方下子 判断该位置是否有棋 找另一位置 有 是 白方下子 判断白方是否胜出 否 黑方下子 跳出白方胜出 是 选择是否重新开局 游戏结束 判断该位置是否有棋 找另一位置 有
12、黑方下子 无 判断黑方是否胜出 跳出黑方胜出 是 图2.5五子棋的流程图 5 xxxx 大 学 课 程 设 计 说 明 书 2.2.3类成员描述 核心类Class CMyView函数成员及其主要功能简介: CMyView:CMyView 构造函数,初始化数据 CMyView:CMyView 析构函数 BOOL CMyView:PreCreateWindow(CREATESTRUCT& cs) 生成窗口 void CMyView:OnDraw(CDC* pDC) 设置底色,插入棋盘图片,画棋子,显示剩余时间/显示横纵坐标 在MFC的发行版本中,ASSERT_VALID什么也不做。在调试版本中,它
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 五子棋游戏论文 五子棋 游戏 论文

链接地址:https://www.31ppt.com/p-3153762.html