ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:253.20KB ,
资源ID:17406279      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17406279.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(安卓大作业围住神经猫小游戏Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

安卓大作业围住神经猫小游戏Word格式文档下载.docx

1、神经猫一开始在游戏的正中间,平且还有系统随机生成的16 个路障,范围是99的空间里,并且把它分成了点,玩家在点上设置好路障后,神经猫会在看选取的路径中随机选取一条,并移动到下一个点,直至游戏结束。 3) 游戏结束界面:当神经猫移动到任意边缘时,会显示通关失败的提示;但玩家成功围住神经猫时,则显示成功通关页面,并且统计了玩家所用的步数。三 项目概要设计 3.1功能模块设计 (1)程序流程图 根据用户需求,本软件程序流程图如下: 成功 通关失败通关 再来一次 图1.程序流程图(2)程序模块设计为了提高代码的重复利用率,程序设计时自定义了以下几个类:1自定义坐标类 (Dot):每一个点都是一个抽象的

2、对象,需要把每一个点抽象为一个类,然后让每一个圆圈继承于这个类。2自定义绘制布局类(playground):继承surfaceview,将制定的绘图呈现在surfaceview上,界面的响应和绘制都在surfaceview上完成的。3自定义实现接口(OnTouchListener):为了界面的点击做出响应。(3)界面功能详细设计各界面功能详尽介绍如下:1) 游戏开始界面(图1:homepage):打开程序首先显示游戏开始界面,通过点击开始游戏,马上自动跳转到游戏界面图(homepage2) 图1:homepage2) 游戏界面(图2:homepage2):进入到游戏界面以后,就可以正式开始游戏

3、啦玩家开始对神经猫进行围追截堵 图2:homepage2 3)游戏结束界面(图3:homepage3、图4:homepage4):若玩家成功围住神经猫则显示图3,若失败则显示图4图3:homepage3 图4:homepage4 四 项目主要代码系统实现相应功能的主要代码如下:记录每个场景中的元素它的X,Y坐标点的状态:package com.example.crazycat;public class Dot /记录每个场景中的元素它的X,Y坐标点的状态。并不会直接参与界面的响应和界面的绘制 private int x, y; private int status;/记录这个点的状态 publ

4、ic static final int STATUS_OFF = -1;/代表可走的路径 public static final int STATUS_IN = 0;/猫的当前位置 public static final int STATUS_ON = 1;/已经设置的路障 /指定x,y的坐标 public Dot(int x, int y) this.x = x; this.y = y; this.status = STATUS_OFF; /指定geter和sette方法 public int getX() return x; public void setX(int x) public i

5、nt getY() return y; public void setY(int y) public int getStatus() return status; public void setStatus(int status) this.status = status; /同时设置x。y的方法 public void setXY(int x, int y) Playground类的实现:import java.util.HashMap;import java.util.Timer;import java.util.TimerTask;import java.util.Vector;impo

6、rt android.annotation.SuppressLint;import android.app.AlertDialog;import android.app.AlertDialog.Builder;import android.content.Context;import android.content.DialogInterface;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.RectF;impo

7、rt android.graphics.drawable.Drawable;import android.view.KeyEvent;import android.view.MotionEvent;import android.view.SurfaceHolder;import android.view.SurfaceHolder.Callback;import android.view.SurfaceView;import android.view.View;import android.view.View.OnClickListener;import android.view.View.O

8、nTouchListener;import android.widget.Toast;public class PlayGround extends SurfaceView implements OnTouchListener /界面的响应和界面的绘制在SurfaceView完成,触摸事件的响应通过OnTouchListener接口实现 / 行数 private static final int ROW = 9; / 列数 private static final int COL = 9; / 障碍的数量 private static final int BOCKS = COL * ROW /

9、 5; / 屏幕宽度去 private int SCREEN_WIDTH; / 每个通道的宽度 private int WIDTH; / 奇数行和偶数行通道间的位置偏差量 private int DISTANCE; / 屏幕顶端和通道最顶端间的距离 private int OFFSET; / 整个通道与屏幕两端间的距离 private int length; / 做成神经猫动态图效果的单张图片 private Drawable cat_drawable; / 背景图 private Drawable background; / 神经猫动态图的索引 private int index = 0;

10、private Dot matrix; private Dot cat; private Timer timer = null; private TimerTask timerttask = null; private Context context; private int steps; private int images = R.drawable.cat1, R.drawable.cat2, R.drawable.cat3, R.drawable.cat4, R.drawable.cat5, R.drawable.cat6, R.drawable.cat7, R.drawable.cat

11、8, R.drawable.cat9, R.drawable.cat10, R.drawable.cat11, R.drawable.cat12, R.drawable.cat13, R.drawable.cat14, R.drawable.cat15, R.drawable.cat16 ; SuppressLint(ClickableViewAccessibility) public PlayGround(Context context) super(context);/使用Context创建当前类构造函数 matrix = new DotROWCOL;/将行高,列宽传递进去,指定数组大小

12、cat_drawable = getResources().getDrawable(imagesindex); background = getResources().getDrawable(R.drawable.bg); this.context = context; initGame();/调用游戏初始化 getHolder().addCallback(callback);/将Callback对象指定给getholder setOnTouchListener(this);/设定为自己的触摸监听器 this.setFocusable(true); this.setFocusableInTou

13、chMode(true); Override public boolean onKeyDown(int keyCode, KeyEvent event) if (keyCode = KeyEvent.KEYCODE_BACK) stopTimer(); return super.onKeyDown(keyCode, event); / 初始化游戏:分别对可走路径位置,猫的位置和路障位置进行初始化 private void initGame() steps=0; for (int i = 0; i ROW; i+) for (int j = 0; j images.length - 1) ind

14、ex = 0; redraw(); / 获取通道对象 private Dot getDot(int x, int y) return matrixyx; / 判断神经猫是否处于边界 private boolean inEdge(Dot dot) if (dot.getX() * dot.getY() = 0 | dot.getX() + 1 = COL | dot.getY() + 1 = ROW) return true;/当前点的坐标无论是x或y为0,或x或y值是定义的游戏场景最大值时都处于边界 return false; / 移动cat至指定点 private void moveTo(D

15、ot dot) dot.setStatus(Dot.STATUS_IN);/dot的状态设置为猫所处的点 getDot(cat.getX(), cat.getY().setStatus(Dot.STATUS_OFF);/将猫当前点的状态复位 cat.setXY(dot.getX(), dot.getY();/将猫移动到新的点 / 获取one在方向dir上的可移动距离,中心点6个方向距离的判断与获取。路径结束点为路障用负数表示,为场景边缘用正数表示 private int getDistance(Dot one, int dir) int distance = 0; if (inEdge(one

16、) return 1;/如果下一个点已在屏幕边缘,无需再判断 Dot ori = one;/定义ori和next,ori指定为当前函数传入的one Dot next; while (true) next = getNeighbour(ori, dir); if (next.getStatus() = Dot.STATUS_ON) return distance * -1;/下一个点为路障的话,直接返回距离0 if (inEdge(next) distance+; return distance;/下一个点为场景边缘时,距离+1并返回 distance+; ori = next; / 获取dot的相邻点,返回其对象 private Dot getNeighbour(Dot dot, int dir) /每个点都有6个相邻点 switch (dir) case 1: return getDot(dot.getX() - 1, dot.getY();/获得中心点左边相邻点 case 2: if (dot

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1