基于android的五子棋游戏设计与实现-计算机科学与技术本科毕业论文内容摘要:

游戏体验满足玩家瞬间提升的快感, 但是 同时却很难具有长期的 “ 沉迷 ” 性 ,可以说是有百利而无一害。 本次设计是基于 Android 平台开发的一个小型的五子棋游戏程序。 五子棋游戏的简单易学,老少皆宜这些特性与 智能手机的移动方便,大范围普及等特点结合起来,必定会大放光芒,广受欢迎的。 也真是由于上文所述的各种优势,导致手机五子棋游戏被越来越多的人研究学习,可以说程序虽小但五味俱全,作为入门学习是再合适不过的了。 网络上流传的五子棋游戏界面精美,风格各异,实在是已经达到巅峰之作,作者在此并不想去做那锦上添花之举,所以对于本次设计论文有一个明确的定位,在完成五子棋游戏的基本对战功能的设计同时不再做各种附加功能的加强而是对其中所涉及的算法进行更加深入的学习。 3 Android 开发环境 本章将主要介绍如何构建 Android 开发环境,包括获取 Android SDK、 Eclipse 以及进行 Android Eclipse 插件设置等。 Android 开发环境变量配置 JDK 的配置 JDK 的配置并没有什么值得特别叙述的东西,在此主要阐述下 JDK 环境变量的配置问题。 首先 右 键点击 我的电脑 属性 高级 系统设置 ,点击下面的环境变量,在下面的“ 系统变量 ” 处选择新建 , 在变量名处输入 JAVA_HOME 在 变量值 输入 JDK 路径, 确定后再新建一个变 量名为 Classpath, 变量值为 %JAVA_HOME%/lib/。 %JAVA_HOME%/lib/ 的变量 , 确定后找到 PATH 的变量,双击或点击编辑,在变量值最前面加上 %JAVA_HOME%/bin。 最后点击确定按钮即可 ]4[。 如图 31 所示。 4 图 31 JDK 环境变量设置 Android 开发插件的安装 打开 Eclipse, 在菜单栏上选择 helpInstall New SoftWare 在弹出的界面上选择 add,将弹出如下界面,如图 32 所示。 图 32 ADT 的安装 在图 32 中 Name 处键入 Android (名字可 自定义),在 Location 出键入 ok,在后续的弹出界面中选择 next 后进行安装。 安装 android 开发插件后,重启 eclipse。 点击菜单 windowpreferences,将进入一个更新界面。 选择你的 android SDK 解压后 的目录,选错了就会报错,这个是升级工具,可以进行手动选择。 升级 SDK 版本 ,选择菜单 windowAndroid sdk and avd manager,如图33 所示。 5 图 33 SDK 的配置 AVD 的创建 新建 AVD(android virtual device)和配置 SDK 差不多,进入 android sdk and avd manager,选中 Virtual Devices 点击 New 按钮,如图 34 所示。 图 34 AVD 的创建 4 游戏相关技术 本章节主要介绍一下此论文中用到 了的 Android 的布局文件,可视化控件以及它们的具体实现。 游戏布局 画盘线 以手工画图方式讲明白棋盘的座标计算方法: 1 取得屏幕宽高; 2 计算出第一根线 6 与左边和上边的距离; 3 推算其他线条计算方法。 使用程序实现以上计算方法,创建出15根横线与竖线,存进集合中。 for (int i = 0。 i = maxX。 i++) {//竖线 (new Line(xOffset+i*POINT_SIZE, yOffset, xOffset+i*POINT_SIZE, yOffset+maxY*POINT_SIZE))。 } for (int i = 0。 i = maxY。 i++) {//横线 (new Line(xOffset, yOffset+i*POINT_SIZE, (maxX+1)*POINT_SIZE, yOffset+i*POINT_SIZE))。 } //在 ondraw 方法画出所有棋盘线 for (Line line : lines) { (, , , , paint)。 } 双缓冲技术画棋子 复制棋子对应的图片(四张)到工程中 ,使用这四张图片生成四个 Bitmap:1 从context 中取得图片的代码 Resources resources = ().getResources()。 Drawable drawable = () 2 将图片画到 Bitmap(内存缓冲区)的过程 //为指定颜色对应的图片创建 bitmap 对象并放入到数组中 public void fillPointArrays(int color,Drawable drawable) { //创建 Bitmap 内存缓冲区(申请内存空间) Bitmap bitmap = (POINT_SIZE, POINT_SIZE, )。 //创建画布、并设置将内容画到上面创建的 Bitmap 上 Canvas canvas = new Canvas(bitmap)。 //设置资源画的范围大小 (0, 0, POINT_SIZE, POINT_SIZE)。 //将图像资源画到缓冲区中 (canvas)。 //把缓存 区引用存进数组中(注意将下标定义以颜色命名的常量) bitmaps[color] = bitmap。 } 7 在 onDraw 方法将其在随意位置画出 (bitmaps[color_index],0,0,paint)。 在触摸处画棋子 通过 onTouchEvent 方法获得触摸位置座标 ,以此座标创建一个棋子,触发 onDraw 方法,把刚才的棋子画出来 public boolean onTouchEvent(MotionEvent event) { Point point = newPoint((), ())。 //刷新一下棋盘,触发 onDraw 函数 refressCanvas()。 } newPoint 方法将此座标调整到对应的棋位上(以手工画图的方式确定棋子四周的范围的计算方 ) private Point newPoint(Float x, Float y){ //是 否在棋盘线以外 boolean isOutsideChessboard = true。 Point p = new Point(0, 0)。 for (int i = 0。 i = maxX。 i++) { if (((i1) * POINT_SIZE + xOffset + POINT_SIZE/2) = x amp。 amp。 x (i * POINT_SIZE + xOffset + POINT_SIZE/2)) { (i)。 //找到横座标,证明不在棋盘线以外 isOutsideChessboard = false。 break。 } } //如果横坐标在棋盘线外,返回空,不下棋子 if(isOutsideChessboard){ return null。 } //重置标志 isOutsideChessboard = true。 for (int i = 0。 i = maxY。 i++) { if (((i1) * POINT_SIZE + yOffset + POINT_SIZE/2) = y amp。 amp。 y (i * POINT_SIZE + yOffset + POINT_SIZE/2)) { (i)。 8。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。