版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、安徽大学电子信息工程学院C语言程序设计指导老师:梁栋小组成员:高丽蓉 高雪 朱楠 丁昊 刘佳慧 阮超C语言程序设计之五子棋摘要:本程序是一种两人对弈的纯策略型棋类游戏,规则简单,变化多端,非常富有趣味性和消遣性。主要应用了Visual C+编程来完成这个游戏的设计的。本文主要介绍了本游戏的开发环境Microsoft Visual C+6.0,使用当前优秀的开发工具VC+编程基于MFC的基本对话框,编写了一个五子棋的游戏软件。包含了五子棋程序的棋盘初始化、游戏规则、胜负判断方法。关键词:五子棋游戏应用程序、初始化、规则、图形函数、判断1. 问题描述在Visual C+ 6.0编译器的基础上,基于
2、MFC的基本对话框,编写一个五子棋的游戏软件。该游戏应该符合以下要求:1.1游戏模式:人先下棋,电脑在人下子后会随后下棋。1.2人机对弈:完成人和计算机的对弈,用黑色棋子表示人,白色棋子表示电脑,电脑要具有一定的人工智能,能够可以与人对弈一段时间。1.3棋盘:要求棋盘绘制美观耐看。1.4判断输赢:当一方有五个相邻的棋子连成一条线时,计算机能判定输赢,并能结束本次游戏并重新开始。1.5存储功能:要求五子棋有存储功能,可以将进行中的游戏存储在棋盘上,也可以读取已存盘的游戏。1.6弹窗功能:要求制作按钮,实现弹框功能,可以弹出指导老师与小组成员的信息。2. 详细设计2.1总体设计程序流程图如下图所示
3、:2.1.1 新建工程,选MFC AppWizard(exe),添上工程名,确定。2.1.2选基本对话框,完成,确定2.1.3插入位图我们选择的方式从网上搜寻一些图片,然后直接贴图。先插入位图(BMP格式)。位图插入后会自动赋予ID值,我们将其修改一下:分别修改为BLACK BOARD WHITE CLEAR2.1.4添加DRAW函数添加成员函数Draw:然后添加所编的程序代码。2.1.5在OnPaint函数中加入代码画图在OnPaint函数中加入以下代码:CDC *pDC;pDC=GetDC();Draw(0,0,IDB_CLEAR,pDC);Draw(13,13,IDB_BOARD,pDC
4、);for(int i=0;i<15;i+)for(int j=0;j<15;j+)chessij=0;2.1.6添加OnLButtonUp 函数添加消息处理函数:然后添加所编的程序代码。2.1.7添加iswin函数然后添加所编的程序代码2.1.8重复步骤(7),依次添加search,searchvalue,getsorce,AIplay函数。2.1.9复制按钮确定,并粘贴两次,并改名为“读档”“保存”“指导老师”“小组成员”2.1.10给这四个按钮建立类向导添加关联函数然后添加所编的程序代码。2.1.11在OnInitDialog函数中加入以下代码MoveWindow(0,0,5
5、15,580);CenterWindow();GetDlgItem(IDC_SAVE)->MoveWindow(10,515,55,24);GetDlgItem(IDC_OPEN)->MoveWindow(70,515,55,24);GetDlgItem(IDC_teacher)->MoveWindow(345,515,55,24);GetDlgItem(IDC_students)->MoveWindow(405,515,55,24);2.1.12更改icon图标2.2数据结构设计开始游戏人开始下棋电脑下棋输赢能否确定输赢能否确定电脑下棋开始游戏人开始下棋N我赢了,结束
6、战斗谁获胜Y结束游戏电脑胜利,结束战斗电脑人2.3函数功能描述OnInitDialog():通过这个函数,我们定义了窗口的大小、窗口所处的位置、保存按钮的放置、读档按钮的放置、指导老师按钮的放置以及小组成员按钮的放置。OnPaint():通过这个函数,我们在窗口上画出了棋盘。Draw(int x, int y, UINT bitmap, CDC *pDC):通过这个函数,我们可以画出各种图片。OnLButtonUp(UINT nFlags, CPoint point):通过这个函数,我们可以通过鼠标控制在窗口上下子。iswin(int i, int j):通过这个函数,我们可以判断胜负。sea
7、rch(int i, int j, int m, int n):通过这个函数,我们可以判断棋子周围的情况。AIplay():通过这个函数,我们设计了一个人工智能来与人对弈。searchvalue(int &best_i, int &best_j, int color):寻找棋子的有利位置getscore(int i, int j, int color):计算这个函数位置的分数OnSave():通过这个函数,我们实现了存储的功能。OnOpen():通过这个函数,我们实现了打开存储的功能。Onteacher():通过这个函数,我们实现了”指导老师“的弹出窗口。Onstudents(
8、):通过这个函数,我们实现了”小组成员“的弹出窗口。3. 总结本作品是一个简单的双人五子棋游戏,运行程序后直接进入棋盘界面,最终会判断出输赢。主要设计内容概括如下:3.1在初期,本小组认真的对五子棋进行了研究分析,参考了可供参考的资料和程序,确定了运行步骤和流程,并分配了各自的任务。要求每位组员细致了解部分MFC函数,以便实现五子棋游戏的编译。如定义好窗口大小及所处位置、保存按钮的放置、读档按钮的放置、指导老师按钮的放置以及小组成员按钮的放置等。通过各种函数实现画出棋盘、用鼠标控制落子、判断棋子周围的情况、判断胜负、实现存储、打开存储等功能。搜寻图片,找到适合用于五子棋游戏中棋盘、棋子的图片。
9、分配任务给各个小组成员,分别编写五子棋程序所需要的函数。3.2期间程序需要添加很多成员函数及消息处理函数,如Draw函数、OnPaint函数、iswn函数等。3.3运行五子棋并进行测试,每位组员负责的程序部分写好之后,再将大家的程序汇总,但发现有些人的模块编写有误,导致程序无法运行,因此大家在一起讨论与修改并回去思考。经过多次测试并改进程序部分函数,程序已经可以运行了。考虑到五子棋游戏比较简单,就没有设置悔棋环节。3.3在做C语言程序设计之前,编辑游戏在组里的每个成员看来,都是遥不可及的。但通过这次设计我明白了并不是如此,只要团队合作也可以搞定,我多学了许多课上没有的知识,比如怎么用C程序画图、写出文本等。通过C语言课程设计,我们对语言这门课程有了更深一步的了解。它是计算机程序设计的重要理论技术基础,在我们电子专业的学习中占据着十分重要的地位。同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。只要多实践,多编写程序,才能更好的掌握书本上的东西。参考文献:梁栋
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高处作业安全防护隐患识别图集
- 北京医患关系典型案例
- 长期复诊医患关系模式
- 企业内部职业规划
- 金融IT职业规划
- 喀什消防安全检测机构
- 安全拉杆生产认证讲解
- 光电类美容仪安全培训内容课件
- 阿里职业发展路径
- 平武消防安全指导中心职能
- 2026年湖南电气职业技术学院单招综合素质考试题库含答案详解
- 2025年度护士个人工作总结与展望
- 2025秋人教版(新教材)初中美术八年级上册知识点及期末测试卷及答案
- 医院副院长年度工作述职报告范文
- DB50∕T 867.76-2025 安全生产技术规范 第76部分:汽车制造企业
- 2026年保安员考试题库500道附完整答案(历年真题)
- 工地给水管预埋施工方案
- 护理三基试题汇编1000题(含答案)
- GB/T 13891-2008建筑饰面材料镜向光泽度测定方法
- GB/T 12346-2006腧穴名称与定位
- 公文格式(全区)课件
评论
0/150
提交评论