基于Android平台的成语接龙游戏设计_第1页
基于Android平台的成语接龙游戏设计_第2页
基于Android平台的成语接龙游戏设计_第3页
基于Android平台的成语接龙游戏设计_第4页
基于Android平台的成语接龙游戏设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、编号: 2010210509 毕 业 设 计(2010届本科)题 目: 基于Android平台的成语接龙游戏设计 系(部)院: 信息技术与传媒学院 专 业: 信息管理与信息系统 作者姓名: 陈松林 指导教师: 吴建军 职称: 副教授 完成日期: 2014 年 5 月 26 日 IV河西学院本科生毕业论文(设计)诚信声明本人郑重声明:所呈交的本科毕业论文(设计),是本人在指导老师的指导下,独立进行研究(设计开发)工作所取得的成果,成果不存在知识产权争议,除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明

2、。本人完全意识到本声明的法律结果由本人承担。 本科毕业论文(设计)作者签名: 二一四年五月二十六日摘 要本设计实现一款安卓智能手机的成语接龙游戏。该系统基于安卓平台运行,采用Java语言,通过Eclpse开发软件进行开发。实现的功能有:自动在后台播放背景音乐,打开或者关闭背景音乐,对用户选择答案的判断,获取网络资源(包括图片信息,答案信息),通过消费不同的金币查看完整答案以及提示部分答案;运行效果流畅,程序能完全正常的运行,对手机硬件设施要求低,是一款大众化的手机端应用。关键词:Android,数据库,Servelet,游戏 AbstractIdioms solitaire game the

3、design and implementation of an Android smart mobile phone. The system runs on the Android platform, using Java language, developed by Eclpse software. Functions: automatic background music playing in the background, open and close the background music or, for users to choose the answer judgments, o

4、btain cyber source (including picture information, the answer information), complete answer viewed through the consumption of different gold and suggests that part of the answer; running effect smooth, program can completely normal operation, low requirement on mobile phone hardware facilities, is a

5、 popular mobile phone application.Keywords: Android,Database,Servelet,Game目 录第一章 设计概述11.1 设计背景与意义11.2 同类或相关系统的开发现状11.3 设计目标与主要工作21.3.1 设计目标21.3.2 设计主要工作2第二章 系统分析与设计32.1 系统分析32.1.1 用户角色分析32.2 功能模块设计32.2.1 总体功能模块设计32.2.2 详细功能模块实现42.3 数据库设计42.3.1 概念设计42.3.2 逻辑设计5第三章 系统实现73.1 开始闯关模块的实现73.1.1 查看答案的实现73.1

6、.2 提交结果的实现83.2 设置功能模块的实现83.2.1 背景音乐的实现83.2.2 内容更新的实现83.3 帮助功能模块的实现83.3.1 帮助功能的实现83.4 退出功能模块的实现83.4.1 退出功能的实现8第四章 系统安装部署和简要使用说明94.1 系统运行环境说明94.2 系统简要使用说明9第五章 设计总结10致谢11参考文献12河西学院信息技术与传媒学院毕业设计第一章 设计概述1.1 设计背景与意义通过平时的观察以及通过网络的了解,发现人们对成语知识的认知程度越来越不重视,希望通过该软件来提大众对国语的重视程度。同时能够有效的提高儿童对我国汉字的了解和认识。玩家在游戏中,通过不

7、断的积累金币,不但能够获得相应的乐趣,体验游戏的快乐,而且在游戏的同时还能够学到知识,是一款特别适合少年儿童的游戏。1.2 同类或相关系统的开发现状在开发此款软件之前,参考了太阳工作室的成语接龙游戏,该应用在开发的同时不仅实现了游戏的功能,还添加了相关推荐应用的下载的功能,这样虽然增加了应用的多元性,但是给用户的感觉是在发布广告;该引用还添加了成语动画的功能,也是该应用多元化体现之一,但是在这个功能模块中需要用户手动下载动画,而且动画功能的数据消耗大可能会增加用户大量的流量费用,没有从用户的角度出发考虑。参考的第二款软件同样是太阳工作室的另一款看图猜成语游戏,该分为背景音乐开关,检测更新,开始

8、游戏三个功能模块。界面简洁明了,用户操作简单。但是该应用在开发的时候没有考虑到游戏内容的更新,游戏关卡一成不变,用户在使用的时候会觉得没有新鲜感。第三款软件是成风工作室的疯狂猜成语应用,该应用在用户的界面很华丽,用户操作简单应用的第一界面风格独特很吸引用户,用户选择完答案后会有正确和错误的不同提示音。但是在用户手机联网的情况下,该应用的广告过于频繁,用户在操作过程中很容易点进广告进入自动下载界面。通过对同类相关系统的了解和使用,对本选题有了更进一步的理解,我准备在完成本设计时学习吸收成风工作室的疯狂猜成语应用在界面方面风格的华丽独特的优点,太阳工作室的看图猜成语游戏关于用户操作简单的特点,避免

9、出现成风工作室的疯狂猜成语应用的广告过多,对用户使用造成烦恼的缺点开发一款操作简单适合大众的完全从用户角度出发的安卓手机应用。1.3 设计目标与主要工作1.3.1 设计目标本设计的目标是实现一个手机端的成语接龙应用, 要求该系统包括数据库,服务端和客户端三部分,数据库用来存放应用的相关内容,服务端可以动态链接到数据库对其进行操作,客户端通过链接到服务端相应的接口获取数据库对应表里面的内容,可以动态的更新应用的相关内容。实现一款动态的移动手机端应用软件。1.3.2 设计主要工作在充分了解系统需求的基础上,本设计的主要工作如下:1系统功能模块划分2数据库设计3编码实现第二章 系统分析与设计2.1

10、系统分析2.1.1需求分析应用实现用户点击不同的按钮实现不同的功能。1.用户点击开始闯关按钮进入游戏界面,通过选择不同的文字自动在答案框输入对应的文字信息,当四个答案框都不为空的情况下系统自动与正确答案进行匹配,如果标准答案与用户选择答案一致则自动进入下一关,如果不匹配则提示用户重新输入答案;通过点击提示按钮用户可以花费一定的游戏币查看当前关卡的答案,在金币不足的情况下则获取提示失败。2.点击设置按钮进入设置界面,通过点击背景音乐开关打开或者关闭背景音乐;点击内容更新按钮自动连接网络获取最新游戏资源。3.点击帮助按钮进入帮助界面,显示本应用使用的相关帮助信息。4.当用户在一级页面点击返回键后出

11、现提示对话框,用户通过点击确认和取消按钮可以正常退出或者取消退出游戏。2.2 功能模块设计2.2.1 总体功能模块设计系统主要分为4个模块。开始闯关模块的功能是用户正常进入游戏,开始关卡闯关赚取金币。设置模块的功能是用户对背景音乐状态的选择以及游戏资源的更新。帮助模块的功能是显示游戏帮助信息。退出模块的功能是用户通过选择不同的按钮确认是否退出游戏。图 2-1 功能模块流程图2.2.2 详细功能模块实现图 2-2 程序主界面如图 2-2所示,该界面分为三个功能模块,开始闯关,设置和帮助。点击开始闯关按钮正常进入游戏,点击设置按钮进入设置界面,点击帮助按钮进入帮助界面。图 2-3 设置界面图 2-

12、4 资源下载如图 2-3所示,该界面分为两个功能模块,背景音乐开关和内容更新。点击背景音乐按钮程序自动后台播放背景音乐或者关闭背景音乐,点击内容更新按钮在用户具有网络连接的状态下程序会自动获取游戏的最新内容并且下载,包括游戏的图片资源文件和答案资源,其中图片资源文件会自动保存在用户的SD卡相关目录下;如果用户没有网络连接或者不具备SD卡,程序会自动提示用户进行相关操作。图 2-4 为用户点击内容更新后的下载资源界面。图 2-5 帮助界面如图 2-5所示,该界面只是对程序使用进行介绍,帮助用户能够熟练的掌握程序的使用方法。 图 2-6 游戏开始界面图 2-7 答案提示界面图 2-8 答案提交界面

13、如图 2-6所示,该界面实现的功能有用户点击下方单个文字按钮,上方的黑色文本框内会显示用户选择的文字,并且用户点击黑色文本框后会自动清除该文本框内的内容同时下方的文字会重新排列,当四个黑色文本框都填入了文字后提示用户是否提交答案,图 2-7所示,同时系统会自动判断黑色文本框的内容是否与当前图片对应的答案一致,如果一致则提示用户答案正确,同时在金币框内会自动增加相应的金币。当用户点击图 2-6左边100金币位置时出现如图图 2-7所示界面,如果当前用户金币大于100会给出当前正确答案,如果金币不足则获取答案失败。图 2-9 提示用户退出界面当用户处于图2-6界面并按了一次返回键则出现如图2-9界

14、面提示用户是否退出程序。点击确定程序自动退出,点击取消程序继续运行。2.3 数据库设计2.3.1 概念设计图 2-10 答案E-R说明:答案实体和其自身属性,答案内容属性用来保存答案的具体值,答案ID属性用来记录内容的条数。 图 2-11 文字E-R说明:文字实体和其自身属性,属性中的文字ID会自动记录文本内容的条数,文本内容属性用来保存文字ID属性对应的值。 图 2-12 图片E-R 说明:图片实体和其自身属性,属性中的图片ID会自动记录图片路径的条数,图片路径属性的作用是保存图片资源的路径。2.3.2 逻辑设计 img表img表主要用来对管理图片资源的存放路径,该表的主要字段

15、及其含义如表2-11所示。表2-11 img表列名数据类型默认值说明idimagesourseinttext标识种子,自动递增(主键)存放图片资源的路径 answer表answer表主要用来对管理答案,该表的主要字段及其含义如表2-12所示。表2-12 answer表列名数据类型默认值说明idanswersinttext标识种子,自动递增(主键)存放答案 text表text表主要用来对管理单个文字,该表的主要字段及其含义如表2-13所示。表2-13 text表列名数据类型默认值说明idtextinttext标识种子,自动递增(主键)存放单个文字第三章 系统实现3.1

16、 开始闯关功能模块的实现 3.1.1查看答案的实现查看答案是通过首先检查用户当前金币数量是否大于查看答案所需金币,如果金币充足则获取答案数组相应位置的内容最后显示给用户,具体代码入如下:public void getAnser_Dialog(String text, final int goldLevel, int which) AlertDialog.Builder builder = new Builder(PlayActivity.this);builder.setTitle("提示:");builder.setMessage(text);builder.setPos

17、itiveButton("确定", new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int which) if (gold_Count >= goldLevel) gold_Count = gold_Count - goldLevel;tv_Gold.setText("" + gold_Count);String a = answer_Allcount_AllAnswer;if(answer_Which = 0)char b = a.

18、toCharArray();Toast.makeText(PlayActivity.this, "当前成语第一个字为:"+Array.getChar(b, 0), 0).show();elseToast.makeText(PlayActivity.this, "当前成语为:"+a, 0).show(); else Toast.makeText(PlayActivity.this, "金币都不够,还是好好努力学习吧", 0).show(););builder.setNegativeButton("取消", new D

19、ialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int which) );builder.create();builder.show();3.1.2 提交结果的实现提交结果的实现是通过自动判断四个答案文本框是否都不为空,如果每个文本框都包含内容则自动提示用户是否提交答案,用户提交答案后自动与正确答案进行对比,如果答案一直则金币增加20,答案不一致则提示用户回答错误并且显示鼓励性言语,具体代码入如下:final String answer = btn_answer_1.getText().t

20、oString()+ btn_answer_2.getText().toString()+ btn_answer_3.getText().toString()+ btn_answer_4.getText().toString();if (btn_answer_4.getText().equals("")| btn_answer_3.getText().equals("")| btn_answer_2.getText().equals("")| btn_answer_1.getText().equals("") el

21、se if (count_AllAnswer < answer_All.length-1) AlertDialog.Builder builder = new Builder(PlayActivity.this);builder.setTitle("提示:");builder.setMessage("是否提交答案?");builder.setPositiveButton("确定",new DialogInterface.OnClickListener() public void onClick(DialogInterface d

22、ialog, int which) if (answer.equals(answer_Allcount_AllAnswer) count_AllAnswer+;if(checkNew = 1)/=第一种设置图片的方式Bitmap bit = BitmapFactory.decodeFile(img_SDcount_AllAnswer); /加载自定义路径的图片 img_Src.setImageBitmap(bit); elseimg_Src.setImageResource(img_SrcArraycount_AllAnswer);gold_Count = gold_Count + 20;tv

23、_Gold.setText("" + gold_Count);btn_answer_1.setText("");btn_answer_2.setText("");btn_answer_3.setText("");btn_answer_4.setText("");Toast.makeText(PlayActivity.this,"恭喜你回答正确,获得打赏20大洋", 0).show();tv_NowSite.setText("第"+(count_AllAns

24、wer+1)+"关"); else Toast.makeText(PlayActivity.this,"回答错误,还需要好好学习!", 0).show(););builder.setNegativeButton("取消",new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int which) );builder.create();builder.show();elseToast.makeText(PlayActivity.

25、this,"你太厉害啦,通过了全部关卡,游戏自动返回主界面", 0).show();finish();3.2 设置功能模块的实现3.2.1 背景音乐的实现背景音乐的实现通过建立一个服务让其在后台自动运行,首先判断后台播放器是否存在实例,如果不存在则创建一个实例,如果存在则播放相应文件中的背景资源音乐。具体实现代码如下:public class MusicService extends Service MediaPlayer music = null;Context context;ImageView img;String state = ""Overri

26、depublic IBinder onBind(Intent intent) / TODO Auto-generated method stubreturn null;Overridepublic void onCreate() music = MediaPlayer.create(getApplicationContext(), R.raw.back);super.onCreate();Overridepublic void onStart(Intent intent, int startId) LayoutInflater inflate = (LayoutInflater) getApp

27、licationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);View view = (View) inflate.inflate(R.layout.setactivity, null);img = (ImageView) view.findViewById(R.id.img_music_Set);/state = intent.getStringExtra("contral");if (music.isPlaying() = false) img.setBackgroundResource(R.dr

28、awable.sound_on);music = MediaPlayer.create(getApplicationContext(), R.raw.back);music.start(); else img.setBackgroundResource(R.drawable.sound_off);music.stop();super.onStart(intent, startId);3.2.2 内容更新的实现内容更新的实现是通过判断用户是否需要进行资源的更新,如果点击更新按钮则通过服务端查询数据库对应表的内容并且返回客户端对应的资源,然后客户端根据返回的资源进行下载。具体实现代码如下:publ

29、ic void getData() new Thread(new Runnable() Overridepublic void run() Message msg = new Message();ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo info = cm.getActiveNetworkInfo();if (info = null) hand.sendEmptyMessage(3); else hand.sendEmptyM

30、essage(1);/ =/ =下载保存图片资源=/ =String data_Img = HttpConnect.GetData(url_ImgSourse);JSONArray jsonArray_Img;try jsonArray_Img = new JSONArray(data_Img);list_ImgUrl = new ArrayList<HashMap<String, Object>>();for (int i = 0; i < jsonArray_Img.length(); i+) HashMap<String, Object> map

31、 = new HashMap<String, Object>();JSONObject jsonObject = jsonArray_Img.getJSONObject(i);map.put("imgsourse",jsonObject.getString("imgsourse");map.put("imgname", jsonObject.getString("imgname");list_ImgUrl.add(map);HttpGetImg img = new HttpGetImg();for (i

32、nt i = 0; i < 6; i+) img.getImg(list_ImgUrl.get(i).get("imgsourse").toString(),list_ImgUrl.get(i).get("imgname").toString()+ ".png", getApplicationContext();img_Namei = list_ImgUrl.get(i).get("imgname").toString()+ ".png"img_Roadi = Environment.ge

33、tExternalStorageDirectory()+ "/GameImgRes/" + img_Namei;/ =/ =下载保存答案=/ =String data_Answer = HttpConnect.GetData(url_GetAnswer);JSONArray jsonArray_Answer;jsonArray_Answer = new JSONArray(data_Answer);for (int i = 0; i < jsonArray_Answer.length(); i+) JSONObject jsonObject = jsonArray_A

34、nswer.getJSONObject(i);answeri = jsonObject.getString("answers");/ =/ =下载保存单个字文本=/ =String data_Text = HttpConnect.GetData(url_GetText);JSONArray jsonArray_Text;jsonArray_Text = new JSONArray(data_Text);for (int i = 0; i < jsonArray_Text.length(); i+) JSONObject jsonObject = jsonArray_T

35、ext.getJSONObject(i);texti = jsonObject.getString("text");hand.sendEmptyMessage(22); catch (Exception e) hand.sendEmptyMessage(4);).start();3.3帮助功能模块的实现3.3.1 帮助功能的实现帮助功能是显示用户第一次打开应用时在不熟悉该应用的前提下的一些指导内容。具体实现代码如下:img_backHelp.setOnClickListener(new OnClickListener() public void onClick(View a

36、rg0) Intent intent = new Intent(HelpActivity.this,MainActivity.class);startActivity(intent);finish(););3.4退出模块的实现3.4.1 退出功能的实现退出功能是当用户点击返回键然后提示用户是否退出程序,通过监听返回按钮事件来实现。具体实现代码如下:public boolean dispatchKeyEvent(KeyEvent event) / TODO Auto-generated method stubif (event.getKeyCode() = KeyEvent.KEYCODE_BA

37、CK&& event.getAction() = KeyEvent.ACTION_UP) AlertDialog.Builder builder = new Builder(MainActivity.this);builder.setTitle("提示:");builder.setMessage("是否退出游戏?");builder.setPositiveButton("确定",new DialogInterface.OnClickListener() public void onClick(DialogInterfa

38、ce dialog, int which) System.exit(0););builder.setNegativeButton("取消",new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int which) );builder.create();builder.show();return true;if (event.getKeyCode() = KeyEvent.KEYCODE_MENU&& event.getAction() = KeyE

39、vent.ACTION_UP) return true;return super.dispatchKeyEvent(event);第四章 系统安装部署和简要使用说明4.1 系统运行环境服务器软硬件环境 系统要求:Windows系列内存:512MB及以上运行内存客户机软硬件环境系统要求:Android2.2及以上运行内存:259MB及以上4.2 系统简要使用说明点击本应用的桌面图片进入主界面,选择开始闯关按钮进入游戏,通过选择四个不同的文字系统自动提示是否提交答案,如果答案一直则继续下一关卡,如果答案不一直则提示重新输入并清空答案文本框。点击答案提示按钮,通过判断当前金币是否能够扣除所需金币然后

40、显示对应关卡的对应答案;选择设置按钮进入设置界面,通过选择背景音乐开关来打开或关闭背景音乐,选择内容更新进行图片和文本资源的更新;选择帮助按钮进入帮助界面,显示本应用的使用方法和简介。第五章 设计总结本次设计达到了预期想要达到的目标,所有功能模块全部实现并且正常运行。使用了Service类的后台运行技术实现了背景音乐的播放;通过声明所需系统权限获取用户设备信息,判断网络状态,对SD卡进行读写操作;并且监听用户按键操作;通过Servelet类对数据库进行连接并且完成服务端的实现;通过SQL语句对数据库进行查询和更改。通过本系统的完成让我取得了进步以及提高了对所学知识掌握的牢固程度,让我更加深刻的理解了MySQL数据库的强大,能够灵活运用SQL语句;通过Service类实现后台播放功能,充分理解了Service的生命周期以及它的两种启动方式;在服务端接口的编写过程中,可以使用Servelet的doGet()和doPost()方法数据库的连接后对操作数据库的一系列操作并且返回给客户端所需的值;进行文件保存操作所需使用的IO流技术,资源下载和网络连

温馨提示

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

评论

0/150

提交评论