五子棋游戏课程设计说明书_第1页
五子棋游戏课程设计说明书_第2页
五子棋游戏课程设计说明书_第3页
五子棋游戏课程设计说明书_第4页
五子棋游戏课程设计说明书_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计说明书题目五子棋学生姓名杨震学院理学院班级信计131指导教师白莲花二一六年一月二十一日学校代码10128学号201320905020内蒙古工业大学课程设计(论文)任务书课程名称面向对象的程序设计学院理学院班级信计131学生姓名杨震学号201320905020指导教师白莲花一、题目五子棋游戏二、目的与意义面向对象程序设计课程设计可以培养学生综合运用所学面向对象程序设计知识和技能分析与解决实际问题的能力,以及严肃认真的科学态度和严谨求实的工作作风。三、要求采用面向对象程序设计语言C进行程序开发选用一种C语言的开发环境设计界面及程序在开发环境下,进行程序的运行及调试四、工作内容、进度安排主要内容使用C程序设计语言及其开发环境实现简单的五子棋游戏,完成程序的编写和调试。工作进度安排第一天熟悉课程设计题目及具体要求,确定选择的语言开发环境,查阅资料、学习、讨论。第二天根据课题给出的基本需求,进行认真分析和讨论,按照软件工程的思想,完成软件的面向对象分析工作。第三天到第四天在面向对象分析的基础上,进行面向对象的设计工作,完成相关设计工作。第五天到第六天进行面向对象实现工作,确定需要的用户界面以及结构,完成软件的整体框架,在开发环境下,编程实现所开发的系统。第七到第八天调试、测试工作,相关的后期工作。第九和第十天撰写课程设计报告五、主要参考文献1郑莉,董渊,何江舟C语言程序设计第4版M北京清华大学出版201072STANLEYBLIPPMAN,JOSELAJOIE,BARBARAEMOOCPRIMER中文版第四版M北京人民邮电出版社20063WALTERSAVITCHC面向对象程序设计基础、数据结构与编程思想第4版M北京清华大学出版社20034钱能C程序设计教程第2版M北京清华大学出版社20055郑莉C语言程序设计案例教程第1版M北京清华大学出版社20056韦朴,陈泰生VISUALC通用范例开发金典M北京电子工业出版社2008审核意见系(教研室)主任(签字)指导教师下达时间2015年12月28日指导教师签字_摘要随着经济的发展,社会竞争的激烈,现在社会进入了竞争的时代。上班族为了完成公司业务,每天超负荷的工作;学生为了不落后他人每天早起晚睡不断地学习,压力巨大。所以为了缓解大家的压力,使大家在工作、学习之余娱乐一下,活跃大脑,提高工作、学习效率,因此益智性游戏越来越受人们的关注,五子棋作为益智类游戏之一,倍受人们的喜爱,所以对于五子棋的开发也有了很多关注。C语言即是进行软件开发的直接工具,又是“数据结构”、“操作系统”、“编译原理”以及其他相关课程的先修课程,因此,在整个教学体系中占据十分重要的地位1。本文主要讲的是利用VC60软件开发一个界面简洁、直观、实用性比较高的AI功能的五子棋游戏,游戏程序实现人人对弈,在对弈过程中当用户和用户比赛时电脑利用搜索算法计算出落子的最佳位置,是先人人对弈,而且程序能够完成具有重新开始、认输、提示该轮到哪一方下棋的、游戏、判断胜负、悔棋等功能。关键词人工智能;自动处理;五子棋目录第一章任务概述111问题概述112需求分析1第二章概要设计221功能设计222程序结构223基本流程3第三章程序实现431主要变量及函数说明4311主要变量4312主要函数432主要功能实现4321棋盘类的声明4322玩家类的声明5323棋盘显示为方形5324判断棋子显示位置是否合理6325判断输赢6第四章结果与总结741运行过程及截图7411棋盘初始化模块7412输入错误提示9413结局判断模块10总结13参考文献14附录15引言五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为“連珠”,英译为“RENJU”,英文称之为“GOBANG”或“FIR”(FIVEINAROW的缩写),亦有“连五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶。当我们一个人无聊时,五子棋无疑成为一个令人爱不释手的游戏,五子棋容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。我的目的就是通过C来创建一个网络对战的平台,可以让在电脑工作的人也有人人博弈的机会,开发自己的兴趣。通过这次课设,我可以独立的利用学习的C程序设计和VISAULC60编写环境写程序,加强自己学习能力和解决问题的能力。第1章任务概述11问题概述设计一个五子棋,棋盘大小1515,能实现人人对战。采用面向对象程序设计语言C进行程序开发选用一种C语言的开发环境设计界面及程序在开发环境下,进行程序的运行及调试使用C程序设计语言及其开发环境实现简单的五子棋游戏,完成程序的编写和调试。12需求分析明确五子棋游戏的游戏规则,编写程序实现其功能。为了更好的实现游戏,需求分析如下(1)选择游戏模式(2)进入游戏。(3)开始游戏,一方开始下子。(4)另一方下子。(5)判断游戏输赢。(6)游戏结束。第二章概要设计21功能设计程序主要实现的功能如下所述(1)启动程序(2)显示棋盘,并显示谁先开始下第一子(3)另一方下子,判断下子是否有棋子(4)判断输赢(5)重复上面步骤(3)(4)(6)游戏结束,显示胜利22程序结构程序结构如下图图21程序结构图23基本流程根据游戏规则及其结构图,画出如下程序基本流程图图22基本流程图第三章程序实现31主要变量及函数说明311主要变量M_CSQUARE/棋盘坐标INTM_X/下棋的横坐标INTM_Y/下棋的纵坐标312主要函数VOIDSHOW/显示棋子ISINCHESSBOARD/玩家落子的坐标ISLINE/判断五子连线的方法ISWIN/判断输赢32主要功能实现321棋盘类的声明CLASSCHESSBOARD/棋盘类PUBLICCHARM_CSQUAREROWCOL2PUBLICCHESSBOARDVOIDSHOW322玩家类的声明CLASSPLAYERPRIVATESTRINGM_NAMECHARM_CHESSTYPEINTM_XINTM_YCHESSBOARDM_PTBOARDPUBLICPLAYERSTRINGNAME,CHARCHESSTYPEM_NAMENAME,M_CHESSTYPECHESSTYPE,M_PTBOARDNULLVOIDATTACHTOBOARDCHESSBOARDPTBOARDM_PTBOARDPTBOARDBOOLISINCHESSBOARDINTX,INTYBOOLISLINEINTX,INTYBOOLISWINVOIDSETCHESS323棋盘显示为方形VOIDCHESSBOARDSHOWSYSTEM“CLS“FORINTI0I0ELSERETURNFALSE325判断输赢BOOLPLAYERISWINRETURNISLINEM_X,M_YTRUEFALSE第四章结果与总结41运行过程及截图411棋盘初始化模块开始游戏时游戏界面是没有旗子的,会显示让AAA玩家首先输入第一个旗子的坐标,如下图图31游戏开始界面所以当游戏开始始,必须做初始化,实现程序如下INCLUDE“CHESSBOARDH“CHESSBOARDCHESSBOARDFORINTI1IM_CSQUARETEMPXTEMPYM_CHESSTYPECNTELSECNT0IFCNT5RETURNTRUERETURNFALSE当程序认定某一方赢得比赛时,会提示这一方胜利,结果如图图34胜利结果图总结编辑小游戏这在我以前认为是遥不可及的,但是通过这次的五子棋设计我明白了,所有的东西对我们来讲都不是遥不可及的。通过课程设计,我们也对C程序设计这门课程有了更深入的了解。它是一门计算机程序设计的重要技术。通过这次的课程设计,我们丛一个函数到多个函数的有机集合到多个类的使用,其中经历了不少困惑和不解,但至少我们最后做到了,战胜了课程设计的恐惧,也收获了程序与运行成功的喜悦,有付出就有回报通过一个学期的学习,要把知识运用到这次的课程设计还是有点差劲,学到用时方恨少,发现自己学的不精通,只是懂的一点理论知识,对于一门技术来说,浅尝辄止是远远不够的,不够的。还好通过去网上搜索、去图书馆查找资料、请教老师同学等各种方式克服了一个又一个的困难。多样化的处理问题,才是成功之道,终于把设计给完成了通过这次实践,我对编程有了新的理解,编程并不是像大多数人说的那样充满单调,乏味。一件东西的乐趣在于你能去接触去理解。我接触了,我理解了。让所学的运用于生活中,做到灵活运用,学有所成的兴奋是难得的宝贵。我在其中感悟到乐趣了,相信这是我编程高手之路的一个重要转折点参考文献1钱能C程序设计M北京清华大学出版社19992罗建军朱丹军C程序设计教程M北京高等教育出版社20043张国峰C语言及其程序设计教程M北京电子工业出版19974和克智C程序设计(第2版)M西安西安交通大学出版社1999附录MAINCPPINCLUDE“CHESSBOARDH“INCLUDE“PLAYERH“INTMAINCHESSBOARDBOARDPLAYERPLAYA“AAA“,/玩家AAA的棋子形状是PLAYAATTACHTOBOARDPLAYERPLAYB“BBB“,/玩家BBB的棋子形状是PLAYBATTACHTOBOARDBOARDSHOWWHILE1PLAYASETCHESS/玩家A放下一个棋子IFPLAYAISWINCOUTUSINGNAMESPACESTDCLASSCHESSBOARD/棋盘类PUBLICCHARM_CSQUAREROWCOLPUBLICCHESSBOARDVOIDSHOWCHESSBOARDCPPINCLUDE“CHESSBOARDH“CHESSBOARDCHESSBOARDFORINTI1IUSINGNAMESPACESTDINCLUDECLASSPLAYERPRIVATESTRINGM_NAMECHARM_CHESSTYPEINTM_XINTM_YCHESSBOARDM_PTBOARDPUBLICPLAYERSTRINGNAME,CHARCHESSTYPEM_NAMENAME,M_CHESSTYPECHESSTYPE,M_PTBOARDNULLVOIDATTACHTOBOARDCHESSBOARDPTBOARDM_PTBOARDPTBOARDBOOLISINCHESSBOARDINTX,INTYBOOLISLINEINTX,INTYBOOLISWINVOIDSETCHESSPLAYERCPPINCLUDE“PLAYERH“BOOLPLAYERISINCHESSBOARDINTX,INTYIFX0ELSERETURNFALSEBOOLPLAYERISLINEINTX,INTYFORINTDIRECHORIZONDIRECM_CSQUARETEMPXTEMPYM_CHESS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论