围住神经猫-Java源码Word下载.doc

上传人:b****9 文档编号:13073789 上传时间:2022-10-04 格式:DOC 页数:10 大小:74KB
下载 相关 举报
围住神经猫-Java源码Word下载.doc_第1页
第1页 / 共10页
围住神经猫-Java源码Word下载.doc_第2页
第2页 / 共10页
围住神经猫-Java源码Word下载.doc_第3页
第3页 / 共10页
围住神经猫-Java源码Word下载.doc_第4页
第4页 / 共10页
围住神经猫-Java源码Word下载.doc_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

围住神经猫-Java源码Word下载.doc

《围住神经猫-Java源码Word下载.doc》由会员分享,可在线阅读,更多相关《围住神经猫-Java源码Word下载.doc(10页珍藏版)》请在冰豆网上搜索。

围住神经猫-Java源码Word下载.doc

intstatus;

//记录这个点的状态

//三个表征圆点状态静态常量

publicstaticfinalintSTATUS_ON=1;

//已经开启路障的状态

publicstaticfinalintSTATUS_OFF=0;

//代表灰色可走路径

publicstaticfinalintSTATUS_IN=9;

//猫当前的位置

//三个数字不同即可,具体用哪个数字无所谓

//指定X,Y坐标

publicDot(intx,inty){

super();

this.x=x;

this.y=y;

status=STATUS_OFF;

//当前状态为STATUS_OFF

//指定geter和sette方法

publicintgetX(){

returnx;

publicvoidsetX(intx){

publicintgetY(){

returny;

publicvoidsetY(inty){

publicintgetStatus(){

returnstatus;

publicvoidsetStatus(intstatus){

this.status=status;

//同时设置X,Y坐标的方法

publicvoidsetXY(intx,inty){

/*每一个点都是一个抽象的对象,需要把每一个点抽象为一个类,然后让每一个圆圈继承于这个类,

或者直接把它实现为这个类的实例。

每个点有三个状态:

灰色-猫可走的路径;

红色-路障且状态

无法改变;

黄色-猫当前的位置。

*/

Playground

importjava.util.HashMap;

importjava.util.HashSet;

importjava.util.Map;

importjava.util.Vector;

importandroid.R.integer;

importandroid.content.Context;

importandroid.graphics.Canvas;

importandroid.graphics.Color;

importandroid.graphics.Paint;

importandroid.graphics.RectF;

importandroid.view.MotionEvent;

importandroid.view.SurfaceHolder;

importandroid.view.SurfaceHolder.Callback;

importandroid.view.SurfaceView;

importandroid.view.View;

importandroid.view.View.OnTouchListener;

importandroid.widget.Toast;

publicclassPlaygroundextendsSurfaceViewimplementsOnTouchListener{

//界面的响应和界面的绘制在SurfaceView完成,触摸事件的响应通过OnTouchListener接口实现

privatestaticintWIDTH=40;

//元素的

privatestaticfinalintROW=10;

//行高:

每行储存10个元素

privatestaticfinalintCOL=10;

//列宽:

每列储存10个元素

privatestaticfinalintBLOCKS=15;

//默认添加的路障数量

privateDotmatrix[][];

//声明二维数组来存放点元素

privateDotcat;

//声明猫这个点

publicPlayground(Contextcontext){

super(context);

//使用Context创建当前类构造函数

getHolder().addCallback(callback);

//将Callback对象指定给getholder

matrix=newDot[ROW][COL];

//将行高,列宽传递进去,指定数组大小

for(inti=0;

i<

ROW;

i++){//循环添加数据

for(intj=0;

j<

COL;

j++){

matrix[i][j]=newDot(j,i);

/*X,Y坐标值和行列值是相反的。

即通过查找列值获得X坐标,查找行值获得Y坐标*/

}

}

setOnTouchListener(this);

//设定为自己的触摸监听器

initGame();

//调用游戏初始化

//坐标反转:

封装一个getDot函数实现X,Y坐标反过来传递,所有的操作通过X,Y调用

privateDotgetDot(intx,inty){

returnmatrix[y][x];

//判断猫是否处于边界

privatebooleanisAtEdge(Dotd){

if(d.getX()*d.getY()==0||d.getX()+1==COL||d.getY()+1==ROW){

returntrue;

//当前点的坐标无论是x或y为0,或x或y值是定义的游戏场景最大值时都处于边界

returnfalse;

//为每个点实现获取相邻点的方法

privateDotgetNeighbour(Dotone,intdir){//每个点都有6个相邻点

switch(dir){

case1:

returngetDot(one.getX()-1,one.getY());

//获得中心点左边相邻点

case2:

if(one.getY()%2==0){

returngetDot(one.getX()-1,one.getY()-1);

//奇数行获得中心点左上相邻点:

x-1,y-1

}else{

returngetDot(one.getX(),one.getY()-1);

//偶数行获得中心点左上相邻点:

y-1

case3:

//奇数行获得中心点右上相邻点:

returngetDot(one.getX()+1,one.getY()-1);

//偶数行获得中心点右上相邻点:

x+1,y-1

case4:

returngetDot(one.getX()+1,one.getY());

//获得中心点右边相邻点

case5:

returngetDot(one.getX(),one.getY()+1);

//奇数行获得中心点右下相邻点:

y+1

returngetDot(one.getX()+1,one.getY()+1);

//偶数行获得中心点右下相邻点:

x+1,y+1

case6:

returngetDot(one.getX()-1,one.getY()+1);

//奇数行获得中心点左下相邻点:

x-1,y+1

//偶数行获得中心点左下相邻点:

default:

break;

returnnull;

//中心点6个方向距离的判断与获取。

路径结束点为路障用负数表示,为场景边缘用正数表示

privateintgetDistance(Dotone,intdir){

// System.out.println("

X:

"

+one.getX()+"

Y:

+one.getY()+"

Dir:

+dir);

intdistance=0;

if(isAtEdge(one)){

return1;

//如果下一个点已在屏幕边缘,无需再判断

Dotori=one,next;

//定义ori和next,ori指定为当前函数传入的one

while(true){

next=getNeighbour(ori,dir);

if(next.getStatus()==Dot.STATUS_ON){

returndistance*-1;

//下一个点为路障的话,直接返回距离0

if(isAtEdge(next)){

distance++;

returndistance;

//下一个点为场景边缘时,距离+1并返回

distance++;

ori=next;

//下一个点既不是路障也不是场景边缘,距离自加并把当前的下一个点赋值成参考点ori

//实现猫移动到下一个点

privatevoidMoveTo(Dotone){

one.setStatus(Dot.STATUS_IN);

//one的状态设置为猫所处的点

ge

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 其它

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

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