基于安卓平台下的C 象棋游戏的设计与实现毕业论文
2021-03-19 21:21:23
摘 要
随着智能手机的普及,手机游戏行业的发展十分迅猛。中国象棋是中国传统的游戏项目之一,具有相当悠久的历史和庞大的喜爱者群体。中国象棋作为竞技类游戏能够对体验者进行思维与逻辑的锻炼,能够使大脑的思维更加敏捷与清晰,是一个老少咸宜的竞技游戏。人们通过手机能够更加方便的享受中国象棋的乐趣与魅力。
本文在分析android手机软件开发技术和对开发语言的选择之后,使用C 为用户开发基于安卓平台下的象棋游戏的来满足用户的需求。本文基于目前流行的cocos2d-x游戏引擎并结合MVC模式的思想提出一个可以快速开发跨平台的手机游戏客户端的游戏开发框架。该框架的核心思想是:应用MVC模式的思想分离层的数据逻辑和数据视图(一个层在游戏中表示一个游戏界面),在程序中还设计了多个容器模块(Container)用来降低程序复杂性并解决诸如代码复用等问题。
关键字:C 、游戏开发框架、跨平台、cocos2d-x游戏引擎、Model-View-Controller
Abstract
With the popularity of smart phones, mobile gaming industry is developing rapidly. Chinese chess is one of the traditional Chinese Games, with a long history and a large group of enthusiasts. Chinese chess as a competitive game to experience the thinking and logic of the exercise, can make the brain more agile and clear thinking, is a game of young and old. People can enjoy the pleasure and charm of Chinese chess more conveniently through the mobile phone.
In this paper, after the analysis of Android mobile phone software development technology and the choice of the development language, C is used to develop the chess game based on Android platform to meet the needs of users. In this paper, based on the popular cocos2d-x game engine and the idea of MVC model, we propose a framework for the rapid development of cross platform mobile game client. The core idea of the framework is that data logic and data view thought separation layer of the MVC application (a layer of a game interface in the game), a plurality of container modules are also designed in the program (Container) is used to reduce the complexity of a program and solve the problems such as code reuse.
Keywords:C ,game development framework,cross platform,cocos2d-x game engine,Model-View-Controller
目录
1绪 论 4
1.1研究背景 4
1.2国内外现状分析 4
1.3研究的成果及意义 5
2游戏的功能分析与规则分析 6
2.1对界面的要求 6
2.2游戏中的移动棋子的规则 6
2.3游戏框架的设计 7
2.3.1辅助类 7
2.3.2游戏相关类 7
2.3.3共享类 8
3环境配置 9
4程序的总体设计方法 10
4.1象棋的详细规则介绍 10
4.1.1认识象棋中的棋盘和棋子 10
4.1.2象棋中各棋子的走法 11
4.1.3象棋中的吃子过程 12
4.1.4象棋中的“将军”与被“将军” 12
4.1.5象棋中胜、负、和的判定方法 12
4.2象棋棋子的移动规则及其相关代码 12
5象棋游戏的功能介绍 28
5.1各种相关类的关系 28
5.2游戏过程中的逻辑 29
5.3棋子的移动流程 32
5.4游戏的运行界面 32
5.5项目的缺点和不足 33
6总结与展望 34
致谢 35
参开文献 36
第1章 绪 论
1.1研究背景
近年来,随着互联网时代的到来,各种移动终端的发展飞快的刺激着通信领域的发展,同时体验用户对移动终端的要求也越来越高。越是开放的手机平台越能够满足用户的要求。
Android是一种基于Linux的开放源码的操作系统,安卓操作系统最初是由Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。
如今经过安卓系统的不断发展,不再是只能使用Java来开发安卓应用程序,它能够允许开发者使用更多种类型的语言对它进行开发。由于这一个特点它受到更多的开发人员的欢迎,更加促使安卓成为更加开放的系统。
在早期的安卓开发应用程序时,通常是在android SDK(一种安卓的软件开发包)下使用Java作为开发语言来进行应用程序的开发,在android NDK(android native 开发包)下使用c或者c 作为编程语言来进行应用程序的开发。
1.2国内外现状分析
近年来,网络游戏发展迅猛,上海艾瑞市场咨询有限公司制作的《中国移动游戏行业研究报告简版》指出:截止到2014年,中国游戏总产值超过400亿元。移动游戏占据中国市场游戏的24.9%,大大超过了页游的19%。并预测到2018年,移动游戏的市场在中国游戏的市场份额将超过端游的市场份额。在这种情况下,开发基于安卓手机游戏可以拥有很大的市场。
中国象棋是中国古老相传的游戏项目之一,至今已有2300多年的历史,早在战国时期就有有关的记载。
中国象棋的对弈体现的是一个人的思维方法。用户在方寸之间体会人生的哲理和思考方式,使用户越是细玩越能够感触象棋的博大精深。中国象棋由于行棋规则简单,趣味性强以及能够对脑力进行锻炼等原因深受广大象棋爱好者的喜爱,由于象棋的老少咸宜使它具有广大的爱好群体,在国外也深受喜爱。
中国象棋属于中国传统的游戏项目之一。而安卓平台是现在科技高速发展的产物,二者的结合,能够让人们随时随地享受中国象棋的乐趣。当人们在闲暇之余或者在繁重的工作之后,通过移动终端来进行中国象棋的对弈来打发无聊的时光或来转移自己的注意力,能够起到很好的效果。而且中国象棋与安卓平台相结合,更是中国的传统文化遗产与现代科技的结合,是精神文化与科学的结合。
1.3研究的成果及意义
本论文基于目前的cocos2d-x的游戏引擎结合了MVC模型使用c 在VS上实现了中国象棋这款终端游戏的开发。这款游戏的代码扩展性和代码可重用性极强,能够有效地支持对同一款游戏的多次修改,而且还能够支持一些非专业人员(如游戏策划)进行部分游戏模块的开发。
中国象棋对弈能够让人们的思维方式进行锻炼,体会不同的思维方式能够是人们的智力得到提高,移动终端与中国象棋的结合,能够随时随地享受象棋给人们带来的乐趣,打发无聊的闲暇时间,象棋与人对弈也是获得友谊的一种方式,而且还能对用户的脑力进行锻炼,在移动终端上与人对弈象棋,是一种很好的休息方式。
第2章 游戏的功能分析与规则分析
2.1对界面的要求
通过对移动终端游戏用户的体验调查,分析了用户对中国象棋的需求的逻辑后,中国象棋游戏具有的功能以及游戏的操作方式把整个游戏设计划分开:首先先运行中国象棋的游戏,进入到欢迎游戏的界面,然后可以进入到菜单界面,在菜单界面上有“开始游戏”、“游戏帮助”、“游戏设置”等按钮。点击“游戏设置”按钮玩家可以自己设置游戏的背景音乐和游戏音效等。点击“游戏帮助”按钮玩家可以进入到帮助界面更加详细的了解游戏的规则和游戏操作方法。而点击“开始游戏”按钮玩家就会进入到游戏的主界面开始游戏,在游戏的主界面有“悔棋”、“认输”、“求和”等按钮,点击求和“求和”按钮会向另一名玩家发送求和请求确认是否同意双方打和。点击“悔棋”按钮会向另一名玩家发送悔棋的要求,确认是否同意悔棋。点击“按钮”会直接显示玩家游戏失败。在游戏中玩家必须依据行棋的规则来移动棋子,当一方玩家的“帅”或者“将”被敌方“吃掉”时,会出现游戏失败或者游戏胜利的界面。在游戏的过程中,玩家可以随时的通过点击退出按钮来退出游戏来返回到菜单界面来结束游戏。
2.2游戏中的移动棋子的规则
在游戏界面对弈过程中,游戏规则规定一方轮流移动棋子,走完一步后换另一方移动棋子,除非出现一方直接认输或者一方的帅(将)被对方吃掉亦或者一方直接退出游戏,否则游戏继续进行。在移动棋子的一方,将某个棋子从一个交点(棋子落点)移动到另一个交点,或者是吃掉对方的棋子来占据被吃掉棋子的交点,都算是走了一步,接下来就轮到对方来移动棋子,双方各走一步合称为一个回合,在移动棋子的过程中,如果目标落点上有对方的棋子时,就可以把目标位置上的对面的棋子拿出棋盘,并在该交点上换上要移动的棋子。
玩家在对弈的过程中需要完全依照规则来移动棋子,而玩家需要在对局中思考采取何种方法来作为自己的最有利的走法,然后利用游戏的走起规则来取得对弈的胜利。
2.3游戏框架的设计
通过分析对中国象棋游戏的了解,对基于安卓平台下的c 游戏的界面需求和规则分析,结合了自己对中国象棋游戏项目的知识点的掌握程度,下面对中国游戏进行总体设计,主要由辅助类、游戏相关类、共享类这三个类组成。
2.3.1辅助类
辅助类主要有错误信息输出类chess_error,欢迎界面类welcomeScene,主界面类mainScene,帮助界面类helpScene.
错误信息输出类chess_error主要是在编码过程中记录信息,在运行过程中出错可以找到出错的代码进行修改。
欢迎界面类welcomeScene主要是负责欢迎界面的绘制工作。中国象棋游戏的第一个界面为欢迎界面,通过欢迎界面类welcomeScene来加载一个中国象棋欢迎界面的图片,并通过触摸屏幕的图片,向界面控制类interface_control发送信息来通知控制器对用户界面进行切换,然后将界面切换到主界面。
主界面就是通常用户所说的菜单界面,主界面类mainScene主要是负责主界面的绘制工作以及对该界面上用户的操作指令给予处理,在mainScene类中通过用户点击“开始游戏”按钮界面切换到游戏界面,通过用户点击“游戏帮助”按钮进入到帮助界面,通过点击“游戏设置”按钮进入到声音设置界面来设置是否打开背景音乐和游戏声音。
帮助界面类helpScene主要是负责帮助界面的绘制工作,通过帮助界面类helpScene来加载帮助界面,让用户了解中国象棋的行棋的规则。
2.3.2游戏相关类
游戏相关类主要有游戏界面类GameScne,规则类Rule,棋子走法类ChessMove.
游戏界面类GameScne主要是负责象棋游戏对弈过程中的所有的信息,游戏界面类需要对棋盘和棋盘上对应的棋子进行绘制,在游戏过程中,若一方的将(帅)被吃掉时,弹出游戏胜利或者游戏失败结束游戏并进入到菜单界面,亦或者可以通过退出游戏或者“认输”,“求和”等操作退出游戏进入到菜单界面,都需要借助游戏界面类GameScne来完成,该类是整个游戏程序中最主要的类。
规则类Rule:中国象棋游戏中的所有移动棋子的规则以及当前所有棋子的可能移动方法都包含在规则类Rule中。
棋子走法类ChessMove主要负责记录棋子的信息,该类为棋子的封装类,主要包括棋子的名称,要移动棋子的出发点和目标到达点。