优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

游戏程序设计

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:

4有民族特色的游戏
五子棋,亦称“连五子”、“串珠”、“五目”、“五格”等等,日文称之为
“连珠”,英文则称之为“Gobang”或“Renju”或“FIR(Five In a Row)”,是起源于中国古代的传统黑白棋种之一。早在“尧造围棋”之前,可能民间就已有五子棋游戏。中国人称五子棋为“连五子”或“连珠”,也许是源于史书中“日月如合璧,
五星如连珠”。古代的五子棋盘与围棋盘通用,汉魏时期通行的是十七路棋盘;到了南北朝时期已流行十九路棋盘,这与现代通用的五子棋十五路棋盘是不相同的。此外,古代的五子棋的下法是“白先黑后”,大约是白为阳,为气,气者清扬向上,气者先行;而黑为阴,为形,形者凝聚向下,形重迟缓,故持黑方后行。我国台湾现在仍有以“白先黑后”的规则下五子棋,这与现代五子棋的“黑先白后”的下法是不同的。

think58 [资料来源:http://THINK58.com]

[来源:http://www.think58.com]

五子棋有何年何月传到国外,尚不明了。大约随围棋一起在我国南北朝时期先后传入朝鲜、日本等地。据日本史料文献记载,中国古代的五子棋先由中国传到高丽,然后于公元1688年至公元1704年日本的元禄时代再从高丽传到日本。当时主要在皇宫和贵族大家庭中流行。到元禄末期,在日本京都,这一当时被称为“五目碰”、“五格”的棋游戏在民间开始盛行起来,无论武士、僧侣、农夫等都能参与这一活动。到日本明治32年〔公元1899年〕,经过公开征名,“连珠”这一名称才被正式确定下来。从这以后,连珠这一活动经过了不断的改良,主要是规则的变化。例如1899年规定禁止黑白双方走“双三”;1903年规定只禁止先行的黑方走“双三”;1912年规定,黑方被迫走“双三”亦算输;1916年规定,黑方不许走“长连”;1918年规定,黑方也不许走“四、三、三”;1931年规定,黑方不许走“双四”,并规定将19X19道线的围棋盘改为15X15道线的五子棋专用棋盘。通过这一系列的规则变化,使五子连珠这一简单的游戏复杂化、规范化,而最终成为今天的职业连珠五子棋,同时也成为一种国际比赛棋。目前,连珠五子棋这一棋类运动已迅速在国际上发展起来。现在,已有40多个国家和地区开展了五子棋活动。许多国家的人对五子棋都有不同的爱称,例如韩国人吧五子棋称为“情侣棋”,言下之意是说情人之间下五子棋有利于增加感情的交流;欧洲人称之为“绅士棋”,喻棋手下五子棋的君子风度胜似绅士;美洲人称之为“商业棋”,意思可能是边下五子棋边谈生意,是商业贸易之桥;日本人则称之为“中老年棋”,表示五子棋适合成熟的中老年人的生理特点和思维方式。不同语言、地区的人们都可以借助五子棋这一简单而又深奥的棋艺进行交流、比赛,增进友谊。

[资料来源:http://think58.com]

 

[版权所有:http://think58.com]

第二章  系统开发工具和技术
                
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版
 在目前市场上这些众多的程序开发工具中,有些强调程序语言的弹性与执行效率;有些则偏重于可视化程序开发工具所带来的便利性与效率的得高,各有各的优点和特色,也满足了不同用户的需求。然而,语言的弹性和工具的便利性是密不可分的,只有便利的工具,却没有弹性的语言作支持,许多特殊化的处理动作必需要耗费数倍的工夫来处理,使得原来所标榜的效率提高的优点失去了作用;相反,如果只强调程语言的弹性,却没有便利的工具作配合,会使一些即使非常简单的界面处理动作,也会严重地浪费程序设计师的宝贵时间。 think58.com [版权所有:http://think58.com]
 而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为数据库应用开发人员提供了丰富的数据库开发组件,使数据库应用开发功能更强大,控制更灵活,编译后的程序运行速度更快。

内容来自think58 [资料来源:http://think58.com]


 VC与VB的比较:VB开发速度快,可视化程度高。适具体的产品。它对低层的操纵能力强。可以说其他编程工具不能实现的,用VC基本上都能实现,就运行速度而言,VC要比VB要快,尽管VB近来推出了速度优化编译,号称能够基本达到VC的速度。但是还是要慢一些。
 综上所述,本毕业设计采用VC++6.0作为开发平台
 Visual C++ 6.0编程语言是由Microsoft公司推出的目前极为广泛的可视化开发工具,利用Visual C++ 6.0可以开发基于Widnows平台的32位应用程序,依靠强大的编译器以及网络与数据库的开发能力,用Visual C++ 6.0可以开发出功能强大的应用程序。
 Visual C++ 6.0 目前为止Microsoft 推出的最新和最好的Visual C++编译程序版本,该产品已不仅仅是一个编译程序,已增加了很多新的内容,它包含了Microsoft 的综合基本类(Foundation Class),可简化和加速Windows 程序的开发;还包括了完善的资源编辑程序,可以用来设计复杂的对话框、菜单、工具条、图象、现代Windows 应用程序所需的很多其他组件等。还有一个名为“开发工作室(Developer Studio)”的优秀的集成开发环境,当你开发应用程序时就可以用图形化的视图来查看该应用程序的结构。一种完全集成化的调试工具使你立即就可以查看程序运行时各方面的细节。这些仅仅是Visual C++ 6.0 所拥有大量功能中的几个例子。利用Visual C++ 6.0,就可以帮助你采用最新的Windows 开发成果去开发快速而功能齐全的、先进的应用软件。 内容来自think58

[资料来源:http://think58.com]


在Visual C++ 6.0 中包含了大量新功能:一些新的控件(例如,你可能在Microsoft Outlook 电子邮件应用程序中日期选择器控件)目前已能应用到你自己的应用程序中。各种图象现在已能与组合框中的项相关联,而且可以利用扩充的组合框控件将图象显示在组合选择框中和下列列表中。在Office 97 和Internet Explorer 4 中已使用的一般的工具条和尺寸可调节的工具条都已集成在其类库中,以供你用于你自己的应用程序中。你可以在你自己的应用程序中使用Internet Explorer,查看Web 页和HTML的内容。
 功能强大的AppWizard 可以用来生成各种初始类型的应用程序框架,因而,即使你没有添加一行程序新的应用程序就可具有像Windows 资源管理器那样的多视图应用程序的所有功能。
 基于组件的编程和分布式组件对象模型(Distributed Component Object Modal DCOM )都是现代软件开发新的主流领域。
 本系统是在WINDOWS操作系统上进行开发并获得通过的,同时方便系统开发,减少开发过程的难度,我们是基于以下的软件环境。以Visual C++ 6.0 为开发工具 。
 在80年代,由微软公司所推出的操作系统可以说是个人计算机,简称Pc的宠儿,每个Pc使用有手上几乎都有一套。当初在推出时.有很多的专家并不看好它,但是在行销策赂和广告的带动下,却脱颖而出.打败了当时的竞争者.成为全球数千万台Pc上的操作系统。M各D既是一个提供文字模式、只支持单任务操作、功能并不是很强大、其用户界面也不怎么友善的操作系统,它陪伴大家走过厂80年代。从日前的迹象看来,广大的用户在短期之内.应该还不会抛弃这个十几年的老朋友。 [来源:http://www.think58.com]
 继DOS之后,于1983年又对外发表即将推出新—代的操作环境——windows(话说的太早,结果拖了两年后才正式发行),企图再创另一个高峰。但是最初的wmdMs因为受限于硬件、开发技术和规划上的不成熟.刚开始并末得到太多的掌声。一直等到1990年全球开始掀起一股WINDOWS风潮,许多硬件厂商积极推出与之相容的机种,而软件公司也汗始注意这块尚未开垦的土地.相继推出windows版的应用软件,成是把以往的产品移植到windows上。时于今天软件可以说是一应俱全,文字、排版、图象、绘图、通信电子表格等等,不论是专业领域或者是一般用途,使用将会发现有越来越多且功能更加强人的应用软件可供选择。
 Windows 2000/xp是目前主流图形化操作系统,运行各种各样的Windows操作系统的个人计算机已在全球的家庭和办公环境中广泛使用,而越来越多的个人计算机具有Internet 功能和多媒体功能又推动了对各种各样功能强,速度快的应用软件的进一步需求。目前有一种对Microsoft所取得的成功进行诽谤的气氛,然而,Microsoft的成功加上它对标准化的承诺,使得有承诺的Windows编程人员利用他们掌握的技术在全球范围内得到越来越大的回报,由于西方社会的承认和计算机已越来越深入到每个人的生活中,因而对他们的技术需求与日俱增,从而使得他们的回报、经济收入和其他各方面相应地取得了满意的结果。 think58好,好think58

[资料来源:http://think58.com]

2.2 Viusal C++简介

[版权所有:http://think58.com]

2.2.1面向对象的基本概念
  思维方式决定解决问题的方式,传统软件开发采用自顶向下的思想指导程序设计,即将目标划分为若干子目标,子目标再进一步划分下去,直到目标能被编程实现为止。面向对象技术给软件设计领域带来极大的变化,它利用软件对象来进行程序开发,所谓对象是包含数据和对数据操作的代码实体,或者说是在传统的数据结构中加入一些被称为成员函数的过程,因而赋予对象以动作。而在程序设计中,对象具有与现实世界的某种对应关系,我们正是利用这种关系对问题进行分解。
 从程序语言角度来看,在一个对象中代码和(或)数据可以是这个对象私有的,不能被对象外的部分直接访问。因而对象提供了一种高级保护以防止程序被无关部分错误修改或错误地使用了对象的私有部分。当从对象外部试图直接对受保护的内部数据进行修改时,将被程序拒绝,只有通过对象所提供的对外服务函数才能够对其内部数据进行必要的加工,从而保证了数据加工的合法性。从这一意义上讲,把这种代码和数据的联系称为“封装”。换句话说,封装是将对象封闭保护起来,是将内部细节隐蔽起来的能力。
 在强调软件组件的重用方面,面向对象的技术与标准的工业设计规律有更多相似之处。在面向对象语言中,类是创建对象的关键,事实上类描述了一族对象的公共特征和操作,而对象则是具体实现的类。例如小汽车是一个基本概念,它具有颜色、几何尺寸、动力特性的特征。那我们可以定义一个称为“car”的类,具有颜色、几何尺寸、动力特征等参数,以及描述汽车在外界条件下运动状态的成员函数。一辆具体的小汽车则是一个对象,在这个对象中有关参数均有具体数值,并可以通过输入说明变量(外界条件参数)获取该车具体运动状态。

think58.com [资料来源:www.THINK58.com]


 面向对象技术给软件发展带来如下益处:
 可重用性。从一开始对象的产生就是为了重复利用,完成的对象将在今后的程序开发中被部分或全部地重复利用。
 可靠性。由于面向对象的应用程序包含了通过测试的标准部分,因此更加可靠。由于大量代码来源于成熟可靠的类库,因而新开发程序的新增代码明显减少,这是程序可靠性提高的一个重要原因。
 连续性。具有面向对象特点的C++与C语言有很大的兼容性,C程序员可以比较容易地过渡到C++语言开发工作。
 面向对象语言具有如下基本特征:
 访问控制。对象必须能够对其内部的某些元素进行保护,是它们只能被内部使用,而不受外部干扰。反过来,对象又必须同其它外部元素进行联系,以便对对象进行操作。在C++中,类有私有的(private)、保护的(protected)和公有的(public)三种访问机制。
 继承性。通过对已有对象进行增加或部分修改的方法建立新的对象,对已有对象可以增加数据和过程,也可以对其中某些过程进行从新定义。最初的类被称为基类,从基类扩展出来的类称为派生类。从已有类派生出新类是为了获得更强的针对性。
 多态性。正象生态系统一样,继承构成了类族。通常这些类族中的类具有同名的成员函数,例如OD分布类族,具有一个通用基类,两个派生类:增长系数OD分布类和重力模型OD分布类,这几个类都有同名的Exec成员函数。多态性意味着存在多种形式,能使人们在程序中激活任何属于OD分布类族的类的Exec成员函数,甚至在编译可以不必具体知道对象是属于增长系数OD类还是重力模型OD分布类。 think58

[版权所有:http://think58.com]


 面向对象体系结构技术有助于创建行业性软件开发机构。例如交通规划尽管具有差别,但各城市所需要的软件基本上是相同的,这就为软件开发机构提供了一种制作面向交通规划的软件框架(注意这里讲的是软件框架而不是通用性软件)的机会。这种框架一旦开发成功,就可以多次反复利用。
 面向对象技术特别适合于将某一领域内的软件资源整理成体系化,因为它有很好的表现能力,能够容易抓住特定功能领域的本质。

think58好,好think58 [来源:http://www.think58.com]

[资料来源:http://think58.com]

2.2.2面向对象的程序设计
  为有效使用面向对象的程序方法,首先需要解决程序的结构设计问题。在程序设计过程中最重要的抽象,也就是说,从现实世界中抽象出合理的对象结构。在面向对象思想中,抽象决定了对象的对外形象、内部结构以及处理对象的外部接口,其关键是处理对象的可见外部特征。封装是与抽象紧密联系的概念,它需要两个基本前提:首先,对象必须能够表现一个完备的概念,例如可以将一条道路的纵断面设计作为一个对象,它与外部的联系限于纵断面地面线、纵断面设计参数。当这些外部条件给定之后,对象可以独立计算任意桩号的设计高程、地面高程、设计高差、填挖面积等,也可以根据给定的比例和初始坐标计算设计线和地面线的图形坐标。第二,对象的私有性,例如上述示例中,对象的内部数据结构在外部是不可见的,其他程序员并不需要了解这种数据结构就可以使用对象的功能。对于对象的接口设计是十分重要的,它必须给出必要的访问渠道,同时必须尽可能地将内部细节隐藏起来。我们可以将接口看作是在屏蔽墙上打开的一些出入通道,通道过多了就失去了屏蔽墙存在的意义,通道过少又由于限制过强而行动不便。一般情况下,这种通道表现为一组接口函数,事实上我们也可以将一些变量作为对外开放的,但这并不是一种很好的方法。 [版权所有:http://think58.com]
 面向对象设计方法的另一个重要贡献,是关于继承与多态性的处理。所谓继承是指从现存对象出发建立一个新的对象类型,使它具有原对象的特点和功能,这称为“派生”。同时,新的对象类型又具有某种新特点和新功能。这样,我们可以采用对象派生的方法建立一个有层次的对外部世界的描述。例如,在第三章中我们可以看到一组有关三维曲面分块的类族,从四条三维空间直线定义的简单曲面,到四条复杂三维空间曲线定义的曲面,呈现复杂的分层次的多态性。但他们都有共同的接口函数形式:例如根据给定平面点计算高程等。
 面向对象的方法学是要求按人们通常的思维方式建立问题领域的模型,设计出尽可能自然表现求解方法的软件。所谓建立模型就是建立问题领域中事物间相互关系。而表现求解问题的方法就是人们思维方法的描述。在面向对象的设计方法中对象(object)和传递信息(message passing)分别表现事物和事物间的关系。类(class)和继承性(inheritamce)是描述人们思维方式的描述方法。方法(method)是在可进行的操作,这种对象、类、消息、方法的程序设计范式的关键在于对象的封装和继承性。通过封装(emcapsulation)能将对象的定义和实现分开。通过继承性,体现了类与类之间的关系,以及由此带来的基本特征。下面将从面向对象的方法学方面对有关概念作简要介绍。 [来源:http://think58.com]
(1)对象
 我们把面向现实世界中的实体就称为问题空间的对象从动态的观点看,对象的操作就是对象的行为,从存储的角度看,对象是计算机内存中的一块私有存储区,在这块存储区中有数据、有方法。在面向对象的程序设计中,对象是该系统的基本运行实体,对于每个对象而言,都有与该对象对应的方法,而与每个对象相关的方法,就是定义了该对象的操作。
(2)消息和方法
 在对象之间,消息是他们之间的唯一联系。在面向对象的程序环境中设计的程序,它的执行是依靠对象向消息传递来完成的。把所有的对象分为各种对象类,每个对象类都定义了一组方法,所谓方法就是允许在对象类上进行的各种操作。
(3)类
 在面向对象的程序设计中,对象是程序设计的最基本的单位,相似的对象可以并到一类中去,程序员只需定义一个类,就可根据这个类得到若干个实例,其中每个实例就是一个对象。
(4)继承性
 继承性是自动地共享类、子类、对象中的方法和数据的一种机制,继承性个减少程序设计中编写代码的工作量,它不仅支持系统的可重用性,而且还促进了系统的可扩充性。
(5)封装性
 所谓封装是一种信息隐蔽技术,用户只能看到对象封装界面上的信息,而对象内部对用户透明,封装的目的是把对象的使用者和对象的设计者分开,使用者只需设计访问对象的消息。 copyright think58 [资料来源:http://www.THINK58.com]
(6)多态性
 当同样的消息可发送到父类的对象和它的子类的对象时,这就被称为多太性。由于多太性具有可表达对象的多个类的能力。因此,它既与动态类型有关,又与静态类型有关。
(7)动态聚束
 一个程序经过编译,连接生成的可执行文件代码,其过程就是将执行代码聚束在一起,若这一过程发生在程序设计时,就称为动态聚束。面向对象语言常使用这一类聚束方式,它具有程序简单性和可扩充性等优点。 内容来自think58

[来源:http://www.think58.com]

2.3 类的介绍
   
  游戏的设计用到了Viusal C++ 6.0这个设计环境,在设计的过程中有很多不同的类构成,在C++中类的定义方式为:
 class  类名
 {
 private:
       私有数据及成员函数;
 protected:
       保护段数据及成员函数;
 public:
       公有数据及成员函数;
 };
 其中,class是类定义符,类名是一种标识符,类名称的命名规则与变量名的命名规则相同。一队花括号是类的说明部分,说明该类的成员。类的成员包括数据成员和成员函数两部分。从访问权限来分,类的成员又分为:公有的(public)、私有的(private)和保护的(protected)。
 

think58

[资料来源:www.THINK58.com]

[资料来源:http://www.THINK58.com]