当前位置:文档之家› Android黑白棋游戏的设计与开发

Android黑白棋游戏的设计与开发

毕业设计基于安卓系统的黑白棋游戏的设计与实现学院:专业:学号:学生姓名:指导教师:2016.4.18黑白棋游戏的设计与实现摘要随着技术的发展,手机越来越普遍,安卓智能平台越来越完善,成为手机的主流系统。

千元智能机的出世,智能机替代传统功能机的趋势将日益明显,安卓系统则占领了主导地位。

该文描述了在安卓模拟器下实现实现了黑白棋游戏的功能。

关键词安卓;安卓系统;游戏;黑白棋;安卓开发The design and implementation of the black and white chess game Abstract with the development of technology, mobile phones are becoming more and more common, Android intelligent platform is becoming more and more perfect, and become the mainstream of the mobile phone system. Thousands of intelligent machines was born, intelligent machines replace the traditional features of the trend will become increasingly apparent, Android system has occupied the dominant position. This paper describes the realization of the function of the black and white chess game in Android simulator.Keywords Android; Android system; game; black and white chess; Android development前言2007年11月,Google推出了一种由操作系统,中间件,用户友好应用软件组成的智能手机平台安卓。

安卓推出以来就广受关注,而且安卓还延续着LINUX的开放精神,开放了源代码,这就意味着所有的程序开发员都可以按照自己的喜好通过安卓开发平台来开发出自己的应用程序。

根据市场调研机构IDC公布的数据。

2015年全球智能手机出货量再创记录达14.3亿部,同比增长10.1%。

2015年Q4期间全球智能手机出货量达到了3.995亿,同比增长5.7%。

一.绪论1.1 开发背景Android(['ændrɔid])是一个以Linux为基础的半开源操作系统,主要用于移动设备,由Google和开放手持设备联盟开发与领导。

Android 系统最初由安迪·鲁宾(Andy Rubin)制作,最初主要支持手机。

2005年8月17日被Google收购。

2007年11月5日,Google 与84家硬件制造商、软件开发商及电信营运商组成开放手持设备联盟(Open Handset Alliance)来共同研发改良Android系统并生产搭载Android的智慧型手机,并逐渐拓展到平板电脑及其他领域上。

随后,Google以Apache免费开源许可证的授权方式,发布了Android的源代码。

[1]2013年5月16日,在I/O大会上,谷歌推出新的Android开发环境——Android Studio,并对开发者控制台进行了改进,增加了五个新的功能[6] 。

Android Studio是谷歌推出了新的Android开发环境,开发者可以在编写程序的同时看到自己的应用在不同尺寸屏幕中的样子。

谷歌对开发者控制台进行了改进,增加了五个新的功能,包括优化小贴士、应用翻译服务、推荐跟踪、营收曲线图、用版测试和阶段性展示。

1、优化小贴士:在主体中打开你的应用,点击小贴士,会得到这样的建议:为你的应用开发平板电脑版本。

2、应用翻译服务:允许开发者直接在开发主体中获得专业的翻译。

上传你的需求,选择翻译,其会显示翻译方和价格,并在一周内发回译本。

3、推荐跟踪:允许开发者找出最有效的广告4、营收曲线图:向开发者展示其应用营收,以国家进行划分5、试用版测试和阶段性展示:开发者可以对应用进行测试,然后向测试用户推出,测试结果不会对外公布。

当一个版本的测试结束,开发者可以向特定比例用户推出[7] 。

Android Studio这款开发工具被首次公布,这也是为了方便开发者基于Android开发。

首先解决的一个问题是多分辨率。

Android设备拥有大量不同尺寸的屏幕和分辨率,根据新的Studio,开发者可以很方便的调整在各个分辨率设备上的应用。

同时Studio还解决语言问题,多语言版本(但是没有中文版本)、支持翻译都让开发者更适应全球开发环境。

Studio还提供收入记录功能。

最大的改变在于Beta测试的功能。

Studio提供了Beta Testing,可以让开发者很方便试运行[5] 。

2015年5月29日,在谷歌I/O开发者大会上,谷歌发布AndroidStudio 1.3版,支持C++编辑和查错功能。

Android Studio 1.3版开发码代码变得更加容易,速度提升,而且支持C++编辑和查错功能[8] 。

1.2 软件特色黑白棋,游戏在8x8的棋盘上的中心位置开始,呈对角关系先放入不同颜色各两枚棋子,然后开始轮流下子,两子中间夹住的棋子都是自己的棋子,最后棋盘全部占满或者双方都不能吃子时游戏结束,棋子多的一方胜利。

这款app包含经典黑白棋双人对战模式,即棋盘是8X8共64格。

游戏内容包含:1、当前棋子数目显示,所用时间同步显示;2、落子位置正误判断;3、悔棋功能,但每个选手只能悔棋一次;4、音乐伴随功能,可选择开关;5、落子提示功能,不限次数;6、输赢判别,游戏有三种结果,平局,黑棋赢,白棋赢;7、可以随时开始新的游戏。

1.3 系统介绍安卓系统基于LINUX,可以兼容鼠标键盘,触摸输入等多种输入方式,全面应用与触屏只能移动设备之中。

ADT(Android Development Tools的简称),是Eclipse IDE下的一个安卓系统开发插件。

ADT拓展了Eclipse工具的特色,可以让开发者迅速建立安卓项目,创建界面,加上安卓API框架并使用虚拟机调试程序。

所以ADT是一个很好的开发工具。

安卓系统基于LINUX,可以兼容鼠标键盘,触摸输入等多种输入方式,全面应用与触屏只能移动设备之中。

1.4 操作系统概述[2]基于Android黑白棋游戏的设计与实现二.Android开发平台2.1Android平台具有以下优点:(1)平台的开放性允许任何厂商加入,使其拥有更多的开发者,新颖的应用功能及创意可以不断地实现。

(2)脱离了运营商的束缚,让手机更加贴近互联网。

(3)应用程序都是基于java开发的,java具有一次编写、到处运行的跨平台性。

能够实现在所有的Android设备中运行,真正做到了硬件的无关性,降低了开发者的负担。

(4)提供了标准的API和SDK开发包,手机厂商可以根据需要自行开发或者使用自己已有的程序,从而打造出富有特色的Android平台。

2.2Android体系结构Android平台构架从上至下包含五个部分:应用程序、应用框架、开发库、运行环境以及LINUX内核(1)应用程序Android同一系列核心应用程序包一起发布,该程序包包括email,SMS短消息程序、日历、联系人管理程序等。

所有的应用程序都是Java语言编写的。

(2)应用框架应用框架是进行Android开发的基础。

应用程序框架包含了视图系统、内容提供器、窗口管理器、活动管理器、通知管理器、资源管理器、电话管理器和保管管理器9部分。

(3)开发库Android包含一套C/C++开发库,被应用于Android 系统的各种组件中(4)运行环境Android虽采用Java程序语言来编写程序,但是不使用J2ME2.3无网络环境配置Android开发环境1.JDK安装配置1)安装Java的JDK至默认路径,需要大概300M的空间,安装完成后完成环境变量的配置。

2)配置系统环境变量,否则java编译器无法工作打开:我的电脑—控制面板—系统属性—高级—环境变量,对话框下半部分系统变量中,新增以下两个变量变量名:JAVA_HOME变量值:D:Program Files\java\jdk1.70_04变量名:CLASSPATH变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar修改一下变量:变量名:将“%JAVA_HOME%\bin;”添加在原变量之前。

配置完以后在ms-dos 窗口执行命令java-version,看到如下结果说明java环境配置正确。

[4]2.3功能介绍①主界面显示功能模块显示应用的主界面图,包含图标,复选框和按钮,让用户在进入游戏前浏览;②游戏实现功能模块包含8X8的64格,游戏的棋子就放置在每个小格子内;每当用户点击方格时,如果满足落子条件,屏幕上将会显示此时落子方的棋子一枚,并将满足条件的敌方棋子变为己方棋子显示;③声音开关功能模块可以通过点按复选框来开启或关闭游戏音乐;④当前游戏状态功能模块显示当前落子方的棋子颜色,还有黑色棋子的数目,白色棋子的数目和实时的所用时间;⑤悔棋功能模块即撤销上一步落子的行为,但每个选手只能有一次撤销机会;⑥提示功能模块如果选手不知道下一步落子于何处,可以使用提示功能,该功能可以分析当前的棋局,预测下一步落子的所有可行位置,并且使用半透明棋子标记;⑦开始新游戏功能模块,即重新开始新的一局游戏;三、页面实现3.1 OnCreate程序运行初始化安卓的界面定义使用的是xml文档进行定义。

主页面关联xml布局定义的界面是调用setContentView()函数实现的。

setContentView()的位置应该在该界面onCreate函数之中,初始化整个界面。

调用R文件中的分配地址可以将主界面配置成为预想的界面配置。

R文件类只要是为资源文件分配地址和固定标识,这个过程是编译器自动完成的。

引用目录下layout目录下的主页面布局xml。

这是所有界面通用的方法。

[3]3.2 游戏界面①应用开始界面②游戏运行界面代码如下private void initChessBoard(){for(int y=0; y<10; y++){for(int x=0; x<10; x++){if(x==0||x==9||y==0||y==9){cardsMap[x][y] = new Card(getContext());cardsMap[x][y].setNum(3);}}}setOnTouchListener(new View.OnTouchListener() {int x;int y;@Overridepublic boolean onTouch(View v, MotionEvent event) {if (event.getAction() == MotionEvent.ACTION_DOWN) {x = (int) event.getX();y = (int) event.getY();int length = Math.min(getWidth(), getHeight()) / 8;int row = (int) Math.floor(y / length) + 1;int colu = (int) Math.floor(x / length) + 1;if (row < 9 && colu < 9) {int[] temp = isValid(colu, row, current_color);if (temp != null) {getSituation();blackCount = 0;whiteCount = 0;Game.getGame().setRetractCount(0);Game.getGame().setNotfirstStep(true);for (int y = 1; y <= 8; y++) {for (int x = 1; x <= 8; x++) {//对棋盘进行刷新cardsMap[x][y].setNum(temp[10 * y + x]);switch (temp[10 * y + x]) {case 1:blackCount++;break;case 2:whiteCount++;break;default:break;}}}emptyCount = 64 - blackCount - whiteCount; Game.getGame().setTvBlackCount(blackCount);Game.getGame().setTvWhiteCount(whiteCount);load();current_color = 3 - current_color;Game.getGame().setIvCurrentTurn(current_color);hint();if (pass(current_color)) {AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); builder.setMessage("无效位置!" + "\n" + "请将棋子放置在有效位置!");builder.setView(Game.getGame().getLlDialog(5));builder.setPositiveButton("好的",new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {passTimes++;current_color = 3 - current_color;hint();Game.getGame().setIvCurrentTurn(current_color);dialog.dismiss();}});} else {passTimes = 0;}if (emptyCount == 0 || passTimes > 1) {int winer;if (blackCount > whiteCount) {winer = 1;} else if (blackCount < whiteCount) {winer = 2;} else {winer = 0;}AlertDialog.Builder builder = new AlertDialog.Builder(getContext());builder.setMessage("游戏结束! " + "\n" + "你想要开始新的游戏吗?");builder.setView(Game.getGame().getLlDialog(winer));builder.setPositiveButton("是的", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {startNewGame();dialog.dismiss();}});builder.setNegativeButton("不想", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {dialog.dismiss();}});builder.create().show();}} else {Toast.makeText(getContext(), "位置无效!", Toast.LENGTH_SHORT).show();}}}return true;}});}四.总结与展望本文开发的黑白棋游戏主要的特色在于简便易操作,其优点如下:1、直观而简单,更有助于开发儿童智力。

相关主题