五子棋游戏程序设计论文.docx
《五子棋游戏程序设计论文.docx》由会员分享,可在线阅读,更多相关《五子棋游戏程序设计论文.docx(29页珍藏版)》请在冰豆网上搜索。
![五子棋游戏程序设计论文.docx](https://file1.bdocx.com/fileroot1/2023-2/8/42626b78-ba56-461a-ab37-9f3b8adc0f1a/42626b78-ba56-461a-ab37-9f3b8adc0f1a1.gif)
五子棋游戏程序设计论文
摘要
游戏设计已经成为现在社会的一种热门行业。
五子棋是一种受大众广泛喜爱的游戏,其规则简单,变化多端,非常富有趣味性和消遣性。
这里设计和实现了一个双人对下的五子棋单机游戏。
主要应用了VisualC++编程来完成这个游戏的设计的。
本文主要介绍了本游戏开发环境MicrosoftVisualC++6.0,使用当前优秀的开发工具VC++编程。
包含了五子棋程序的棋盘初始化、游戏规则、胜负判断方法。
关键词:
初始化;规则;判断;
ABSTRAC
Thegamedesignedalreadybecomesthepresentsocietyonepopularprofession.Thegobangisonekindthegamewhichiswidelylikedthepopulace,itsruleissimple,changeable,extremelyrichinterestingandrecreational.Heredesignedandhasrealizedonetwopersontoundergobangsingleplanegame.MainlyappliedVisualtheC++programmingtocompletethisgamethedesign.ThisarticlemainlyintroducedthisgamedevelopmentenvironmentMicrosoftVisualC++6.0,usecurrentoutstandingdevelopmentkitVC++programming.Hascontainedthegobangprocedurecheckerboardinitialization,thegamerule,thevictoryanddefeatjudgmentmethod.
Keyword:
Initialization;Rule;Judgment;
第一章引言
1.1国内外游戏的发展
近年来,随着网络的发展,游戏成为许多人关注的焦点。
与传统的影音产业一样,游戏产业也是娱乐行业的一个重要组成部分,基于数字化的网络游戏更让人们找到了前所未有的感受,并已经成为全球互联产业的热点。
IDC公司预计,2002年网络游戏全球销售额约为60亿美元,未来50年,这一产业将保持年均50%以上的增长速度。
中国电子信息产业发展研究院的统计表明,2001年,我国网络游戏市场销售额超过3亿元,增长率超过52%。
2003年中国网络游戏市场增长45.8%,达到13.2亿元人民币,今年上半年,这一市场规模已达8.85亿元,预计全年有望达到17亿元,预计到2007年将达到67亿人民币。
未来3年,我国网络游戏产业将以年均115%左右的速度增长.在中国,巨大网络游戏消费已经成为业界共识。
中国网民已经达到3000万人,其中30岁以下的占67.9%,即1800万人;以“休闲娱乐”为主要目的的占34.4%,即911万;用户最常用的网络服务中,选择“网上游戏娱乐”的占15.8%,即418万。
新华社最近公布了一项参考数据:
今年以来,中国网络游戏用户正以每月10万-30万的超高速度在增长。
由此,不难看出中国网络游戏产业的发展潜力巨大。
网络游戏出版产业对批发和零售渠道、IT及通信技术的发展、国家税收的提高等都有较大的促进作用。
仅2003年一年,就对通信业直接贡献87.1亿人民币,对IT产业直接贡献35亿人民币,对媒体及传统出版直接贡献26.4亿人民币。
1.2中国游戏发展的误区
谁是中国网络游戏市场最大的收益者?
一言以蔽之,中国网络游戏市场最大的收益者是韩国游戏开发商。
网易的丁磊说过这样的一句名言:
网络游戏行业,是一个睡觉时也能有成千上万收入的行业。
言指网络游戏赚钱之易,但当我们看看中国运营商的现状时却有别样的感受:
试问哪家运营商不是整天担忧着外挂、复制与刷钱,不是整天都提心吊胆,生怕出些什么乱子?
试问哪家运营商不是没日没夜的思考着如何去推广产品,在竞争激烈的市场中找到一席之地?
又试问谁不是在拼命向前走,尝试着宣传、活动与销售的创新,生怕有一时的落后?
简单的问一声,哪个游戏的项目经理能够每晚都安然入睡而不是从噩梦中惊醒?
一句话,现在赚钱比以前难多了,推广费用的急速增高,利润空间的日益缩小,还得与电信商、销售商、合作伙伴分享利润,还得时不时的“让利于民”,运营商的日子是越来越难过了。
而真正如丁磊所说的,睡着大觉也赚大钱的幸福时光,只可能属于韩国游戏开发商。
他们坐拥着中国70%以上的市场,他们收取着从20%到40%不等的高额代理费用,他们得意扬扬的将自己的产品标上高价,待价而沽。
让我们来看看韩国人自己的说法:
韩国产业振兴院代表介绍:
韩国游戏的出口额达到1亿4080万美元。
而其中,来自中国市场的约为50%强,那也就是,韩国游戏开发商每年要从中国获取至少4亿人民币以上的收入。
对比中国网络游戏年度13.2亿的总盘子,这4亿收入让韩国开发商当之无愧的成为了中国网络游戏市场的最大收益者。
那在获取高额收入的同时,他们的所作所为又是否真的能对得起这份收益呢?
他们,无视中国市场现状,全行业联合将产品代理费用提高,还一次次的要求提高分成费。
一款相对来说优秀的网络游戏,其代理费用早已从30万美金变成了数百万美金,而分成费的比例也“芝麻开花节节高”,最高的已超过40%。
他们,对于游戏bug、外挂、复制等问题,视而不见,熟视无睹;他们,对于游戏内容更新动作缓慢,后续支持若有若无;他们,总是将中国大陆市场视为落后市场,在技术支持上执行其所谓的区别歧视策略。
他们,在产品开发上缺乏创新,互相抄袭成风,雷同的故事情节,单一的游戏方式,粗枝滥造的游戏品质,商业化的粗鄙的文化观与价值观……
正如我们的家电、电脑、服装等行业一样,中国网络游戏业同样有着赶超列强甚至进军海外的可能。
最可怕的是什么,是我们不思进取的自满心态,是我们满足于小恩小惠的奴才心理,是我们所一直被束缚的陈旧观念,是我们内战内行、外战外行的可耻思想!
原子弹算是最尖端的高科技了,中国人同样能够攻克;载人飞船算是高科技了吧,中国人同样可以拥有。
醒醒吧,中国的网络游戏人,自主研发并不困难,韩国甚至是欧美列强并非不可超越。
当我们已经拥有了足够的资金、优秀的程序设计员、优秀的美工实力以及中国人民从来就不缺乏的智慧与想象力时,我们为什么要甘于身处产业链的下游,我们为什么要去忍受韩国大爷的盛气凌人、颐指气使,我们为什么不能制造出属于中国自己的游戏,我们为什么不能让世界上最优秀的游戏madeinchina?
2003年,同样有着若干优秀的国产网络游戏出现,它们的表现同样优异,甚至出现了这样耐人思考的局面:
凡是国产的网络游戏,就没有私服,就能良好的解决外挂问题,就能够在市场上取得一席之位,这,难道还不足够让所有人去反思么?
中国网游中国造,这绝不仅仅是一句口号。
自主研发的大旗已经迎风招展,新的时代呼之欲出,就让一直被封闭在小黑屋中的我们去捅破那层窗户纸吧,迎面而来的将是整个世界。
1.3政府大力扶持国产游戏
据新华社电信息产业部副部长奚国华,日前就信息产业领域贯彻《中共中央国务院关于进一步加强和改进未成年人思想道德建设的若干意见》接受采访时指出:
“未成年人是祖国未来的建设者,既要从法律、行政、经济、行业自律等各方面规范网络服务行为,又要积极配合相关部门做好网络的内容建设,为广大未成年人提供内容健康、形式生动、具有吸引力的网络内容。
奚国华强调,信息产业部正加强软件产品研发投入,鼓励开发和推广有自主知识产权的相关软件产品和网络游戏机,保障未成年人思想道德建设的良好的网络信息环境。
原文化部副部长,网络文明工程组委会副主任徐文伯等一批权威专家认为,网络游戏用户群巨大、发展前景广阔,其产生的文化影响更是不可轻心。
2003年我国已将网络游戏纳入863计划,目前中国网络游戏的开发人才奇缺。
完成此课题的设计使我们学以致用掉以轻,总结学习成果,拓展就业渠道的一个理想过程。
根据文化部日前公布的网络游戏产品内容审查制度的规定,将禁止进口非独家授权使用的网络游戏。
据了解,这一规定主要是考虑到,游戏产品版权贸易和运营代理协议必须符合我国合同法、著作权法等法律法规的有关规定,并不得有显失公正的条款。
按照文化部的审查规定,经文化部批准的进口网络游戏产品不得擅自变更节目名称和增删节目内容。
自批准之日起一年内未在国内运营、传播、流通的,进口单位应报文化部备案并说明原因;决定终止进口的,文化部撤销其进口批准文号。
按照规定,网络游戏产品进口、运营单位应当加强运营管理,避免在产品运营过程中产生违法违规的内容。
由于非进口、运营单位的原因产生禁止内容的,进口、运营单位要立即对禁止内容进行删除处理。
按照规定,进口香港、澳门特别行政区和台湾地区的网络游戏产品,将参照外国网络游戏产品办理相关手续。
1.4有民族特色的游戏
五子棋,亦称“连五子”、“串珠”、“五目”、“五格”等等,日文称之为
“连珠”,英文则称之为“Gobang”或“Renju”或“FIR(FiveInaRow)”,是起源于中国古代的传统黑白棋种之一。
早在“尧造围棋”之前,可能民间就已有五子棋游戏。
中国人称五子棋为“连五子”或“连珠”,也许是源于史书中“日月如合璧,
五星如连珠”。
古代的五子棋盘与围棋盘通用,汉魏时期通行的是十七路棋盘;到了南北朝时期已流行十九路棋盘,这与现代通用的五子棋十五路棋盘是不相同的。
此外,古代的五子棋的下法是“白先黑后”,大约是白为阳,为气,气者清扬向上,气者先行;而黑为阴,为形,形者凝聚向下,形重迟缓,故持黑方后行。
我国台湾现在仍有以“白先黑后”的规则下五子棋,这与现代五子棋的“黑先白后”的下法是不同的。
五子棋有何年何月传到国外,尚不明了。
大约随围棋一起在我国南北朝时期先后传入朝鲜、日本等地。
据日本史料文献记载,中国古代的五子棋先由中国传到高丽,然后于公元1688年至公元1704年日本的元禄时代再从高丽传到日本。
当时主要在皇宫和贵族大家庭中流行。
到元禄末期,在日本京都,这一当时被称为“五目碰”、“五格”的棋游戏在民间开始盛行起来,无论武士、僧侣、农夫等都能参与这一活动。
到日本明治32年〔公元1899年〕,经过公开征名,“连珠”这一名称才被正式确定下来。
从这以后,连珠这一活动经过了不断的改良,主要是规则的变化。
例如1899年规定禁止黑白双方走“双三”;1903年规定只禁止先行的黑方走“双三”;1912年规定,黑方被迫走“双三”亦算输;1916年规定,黑方不许走“长连”;1918年规定,黑方也不许走“四、三、三”;1931年规定,黑方不许走“双四”,并规定将19X19道线的围棋盘改为15X15道线的五子棋专用棋盘。
通过这一系列的规则变化,使五子连珠这一简单的游戏复杂化、规范化,而最终成为今天的职业连珠五子棋,同时也成为一种国际比赛棋。
目前,连珠五子棋这一棋类运动已迅速在国际上发展起来。
现在,已有40多个国家和地区开展了五子棋活动。
许多国家的人对五子棋都有不同的爱称,例如韩国人吧五子棋称为“情侣棋”,言下之意是说情人之间下五子棋有利于增加感情的交流;欧洲人称之为“绅士棋”,喻棋手下五子棋的君子风度胜似绅士;美洲人称之为“商业棋”,意思可能是边下五子棋边谈生意,是商业贸易之桥;日本人则称之为“中老年棋”,表示五子棋适合成熟的中老年人的生理特点和思维方式。
不同语言、地区的人们都可以借助五子棋这一简单而又深奥的棋艺进行交流、比赛,增进友谊。
第二章系统开发工具和技术
2.1游戏设计环境简介
自C++诞生以来,随着Internet技术的普及和应用需求的变化,以第四代语言为主的应用开发产品发生了较大的变化,它们不仅已成为人们开发应用的开发工具,而且很多产品已发展成为一种强有力的应用开发环境。
这些新型的开发工具通常以一种集成软件包的形式提供给开发人员,被称为Studio(工作室)或Suite(程序组)。
例如,微软Visual Studio 6.0,Borland公司的Delphi 6.0等数据库辅助开发工具。
现在,市场上可以选购的应用开发产品很多,流行的也有数十种。
目前在我国市场上最为流行、使用最多、最为先进的可用作企业级开发工具的产品有:
Microsoft公司的Visual Basic 6.0版
Microsoft公司的Visual C++6.0版
Borland公司的Delphi 6.0版
在目前市场上这些众多的程序开发工具中,有些强调程序语言的弹性与执行效率;有些则偏重于可视化程序开发工具所带来的便利性与效率的得高,各有各的优点和特色,也满足了不同用户的需求。
然而,语言的弹性和工具的便利性是密不可分的,只有便利的工具,却没有弹性的语言作支持,许多特殊化的处理动作必需要耗费数倍的工夫来处理,使得原来所标榜的效率提高的优点失去了作用;相反,如果只强调程语言的弹性,却没有便利的工具作配合,会使一些即使非常简单的界面处理动作,也会严重地浪费程序设计师的宝贵时间。
而VC++6.0是一个非常理想选择,VC++6.0 是操作系统中快速应用开发环境的最新版本。
它也是当前Windows平台上第一个全面支持最新Web服务的快速开发工具。
无论是企业级用户,还是个人开发者,都能够利用VC++6.0 轻松、快捷地开发优秀的基于通信的程序,开发高效灵活的文件操作程序,开发灵活高效的数据库操作程序,等等。
VC++6.0是惟一支持所有新出现的工业标准的RAD环境,包括XML(扩展标记语言)/XSL(可扩展样式语言),SOAP(简单对象存取协议)和WSDL(Web服务器描述语言)等。
VC++6.0 是可视化的快速应用程序开发语言,它提供了可视化的集成开发环境,这一环境为应用程序设计人员提供了一系列灵活而先进的工具,可以广泛地用于种类应用程序设计。
在VC++6.0 的集成开发环境中,用户可以设计程序代码、运行程序、进行程序错误的调试等,可视化的开发方法降低了应用程序开发的难度。
VC++6.0的基础编程语言是具有面向对象特性的C++语言。
C++具有代码稳定、可读性好、编译速度快,效率高等优点,并将面向对象的概念得到充分的发挥,使这种语言有了全新的发展空间。
合开发那些时间要求紧,面向具体用户的应用。
也就是项目开发。
而不是产品开发,VC开发速度慢,但代码质量高。
适合开发使用VC++6.0 ,我们几乎可以作任何事情,还可以撰写种各种类型的应用程序,动态链接库(DLL)、CON、或CORBA对象,CGI/ISAPI程序,Microsoft Back Office应用程序。
程序的规模小到简单的个人数据库应用,大到复杂的企业的多层次分布式系统,都可以使用VC++6.0进行开发,其友好的集成开发界面,可视化的双向开发模式,良好的数据库应用支持高效的程序开发和程序运行,备受广大程序开发人员的好评。
尤其是VC++6.0对数据库应用的强大支持,大大提高了数据库应用软件开发的效率,缩短了开发周期,深受广大数据库应用程序设计人员的喜爱。
VC++6.0为数据库应用开发人员提供了丰富的数据库开发组件,使数据库应用开发功能更强大,控制更灵活,编译后的程序运行速度更快。
VC与VB的比较:
VB开发速度快,可视化程度高。
适具体的产品。
它对低层的操纵能力强。
可以说其他编程工具不能实现的,用VC基本上都能实现,就运行速度而言,VC要比VB要快,尽管VB近来推出了速度优化编译,号称能够基本达到VC的速度。
但是还是要慢一些。
综上所述,本毕业设计采用VC++6.0作为开发平台
VisualC++6.0编程语言是由Microsoft公司推出的目前极为广泛的可视化开发工具,利用VisualC++6.0可以开发基于Widnows平台的32位应用程序,依靠强大的编译器以及网络与数据库的开发能力,用VisualC++6.0可以开发出功能强大的应用程序。
VisualC++6.0目前为止Microsoft推出的最新和最好的VisualC++编译程序版本,该产品已不仅仅是一个编译程序,已增加了很多新的内容,它包含了Microsoft的综合基本类(FoundationClass),可简化和加速Windows程序的开发;还包括了完善的资源编辑程序,可以用来设计复杂的对话框、菜单、工具条、图象、现代Windows应用程序所需的很多其他组件等。
还有一个名为“开发工作室(DeveloperStudio)”的优秀的集成开发环境,当你开发应用程序时就可以用图形化的视图来查看该应用程序的结构。
一种完全集成化的调试工具使你立即就可以查看程序运行时各方面的细节。
这些仅仅是VisualC++6.0所拥有大量功能中的几个例子。
利用VisualC++6.0,就可以帮助你采用最新的Windows开发成果去开发快速而功能齐全的、先进的应用软件。
在VisualC++6.0中包含了大量新功能:
一些新的控件(例如,你可能在MicrosoftOutlook电子邮件应用程序中日期选择器控件)目前已能应用到你自己的应用程序中。
各种图象现在已能与组合框中的项相关联,而且可以利用扩充的组合框控件将图象显示在组合选择框中和下列列表中。
在Office97和InternetExplorer4中已使用的一般的工具条和尺寸可调节的工具条都已集成在其类库中,以供你用于你自己的应用程序中。
你可以在你自己的应用程序中使用InternetExplorer,查看Web页和HTML的内容。
功能强大的AppWizard可以用来生成各种初始类型的应用程序框架,因而,即使你没有添加一行程序新的应用程序就可具有像Windows资源管理器那样的多视图应用程序的所有功能。
基于组件的编程和分布式组件对象模型(DistributedComponentObjectModalDCOM)都是现代软件开发新的主流领域。
本系统是在WINDOWS操作系统上进行开发并获得通过的,同时方便系统开发,减少开发过程的难度,我们是基于以下的软件环境。
以VisualC++6.0为开发工具。
在80年代,由微软公司所推出的操作系统可以说是个人计算机,简称Pc的宠儿,每个Pc使用有手上几乎都有一套。
当初在推出时.有很多的专家并不看好它,但是在行销策赂和广告的带动下,却脱颖而出.打败了当时的竞争者.成为全球数千万台Pc上的操作系统。
M各D既是一个提供文字模式、只支持单任务操作、功能并不是很强大、其用户界面也不怎么友善的操作系统,它陪伴大家走过厂80年代。
从日前的迹象看来,广大的用户在短期之内.应该还不会抛弃这个十几年的老朋友。
继DOS之后,于1983年又对外发表即将推出新—代的操作环境——windows(话说的太早,结果拖了两年后才正式发行),企图再创另一个高峰。
但是最初的wmdMs因为受限于硬件、开发技术和规划上的不成熟.刚开始并末得到太多的掌声。
一直等到1990年全球开始掀起一股WINDOWS风潮,许多硬件厂商积极推出与之相容的机种,而软件公司也汗始注意这块尚未开垦的土地.相继推出windows版的应用软件,成是把以往的产品移植到windows上。
时于今天软件可以说是一应俱全,文字、排版、图象、绘图、通信电子表格等等,不论是专业领域或者是一般用途,使用将会发现有越来越多且功能更加强人的应用软件可供选择。
Windows2000/xp是目前主流图形化操作系统,运行各种各样的Windows操作系统的个人计算机已在全球的家庭和办公环境中广泛使用,而越来越多的个人计算机具有Internet功能和多媒体功能又推动了对各种各样功能强,速度快的应用软件的进一步需求。
目前有一种对Microsoft所取得的成功进行诽谤的气氛,然而,Microsoft的成功加上它对标准化的承诺,使得有承诺的Windows编程人员利用他们掌握的技术在全球范围内得到越来越大的回报,由于西方社会的承认和计算机已越来越深入到每个人的生活中,因而对他们的技术需求与日俱增,从而使得他们的回报、经济收入和其他各方面相应地取得了满意的结果。
2.2ViusalC++简介
2.2.1面向对象的基本概念
思维方式决定解决问题的方式,传统软件开发采用自顶向下的思想指导程序设计,即将目标划分为若干子目标,子目标再进一步划分下去,直到目标能被编程实现为止。
面向对象技术给软件设计领域带来极大的变化,它利用软件对象来进行程序开发,所谓对象是包含数据和对数据操作的代码实体,或者说是在传统的数据结构中加入一些被称为成员函数的过程,因而赋予对象以动作。
而在程序设计中,对象具有与现实世界的某种对应关系,我们正是利用这种关系对问题进行分解。
从程序语言角度来看,在一个对象中代码和(或)数据可以是这个对象私有的,不能被对象外的部分直接访问。
因而对象提供了一种高级保护以防止程序被无关部分错误修改或错误地使用了对象的私有部分。
当从对象外部试图直接对受保护的内部数据进行修改时,将被程序拒绝,只有通过对象所提供的对外服务函数才能够对其内部数据进行必要的加工,从而保证了数据加工的合法性。
从这一意义上讲,把这种代码和数据的联系称为“封装”。
换句话说,封装是将对象封闭保护起来,是将内部细节隐蔽起来的能力。
在强调软件组件的重用方面,面向对象的技术与标准的工业设计规律有更多相似之处。
在面向对象语言中,类是创建对象的关键,事实上类描述了一族对象的公共特征和操作,而对象则是具体实现的类。
例如小汽车是一个基本概念,它具有颜色、几何尺寸、动力特性的特征。
那我们可以定义一个称为“car”的类,具有颜色、几何尺寸、动力特征等参数,以及描述汽车在外界条件下运动状态的成员函数。
一辆具体的小汽车则是一个对象,在这个对象中有关参数均有具体数值,并可以通过输入说明变量(外界条件参数)获取该车具体运动状态。
面向对象技术给软件发展带来如下益处:
可重用性。
从一开始对象的产生就是为了重复利用,完成的对象将在今后的程序开发中被部分或全部地重复利用。
可靠性。
由于面向对象的应用程序包含了通过测试的标准部分,因此更加可靠。
由于大量代码来源于成熟可靠的类库,因而新开发程序的新增代码明显减少,这是程序可靠性提高的一个重要原因。
连续性。
具有面向对象特点的C++与C语言有很大的兼容性,C程序员可以比较容易地过渡到C++语言开发工作。
面向对象语言具有如下基本特征:
访问控制。
对象必须能够对其内部的某些元素进行保护,是它们只能被内部使用,而不受外部干扰。
反过来,对象又必须同其它外部元素进行联系,以便对对象进行操作。
在C++中,类有私有的(private)、保护的(protected)和公有的(public)三种访问机制。
继承性。
通过对已有对象进行增加或部分修改的方法建立新的对象,对已有对象可以增加数据和过程,也可以对其中某些过程进行从新定义。
最初的类被称为基类,从基类扩展出来的类称为派生类。
从已有类派生出新类是为了获得更强的针对性。
多态性。
正象生态系统一样,继承构成了类族。
通常这些类族中的类具有同名的成员函数,例如OD分布类族,具有一个通用基类,两个派生类:
增长系数OD分布类和重力模型OD分布类,这几个类都有同名的Exec成员函数。
多态性意味着存在多种形式,能使人们在程序中激活任何属于OD分布类族的类的Exec成员函数,甚至在编译可以不必具体知道对象是属于增长系数OD类还是重力模型OD分布类。
面向对象体系结构技术有助于创建行业性软件开发机构。
例如交通规划尽管具有