j2me实现A*算法尝试(不知道是哪位高人写的,不错)

来源:互联网 发布:阿知和知读音 编辑:程序博客网 时间:2024/04/28 18:25
//4方位的移动方式本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
//L.S本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
import java.lang.*;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
import javax.microedition.lcdui.*;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
import java.util.Random;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
import javax.microedition.rms.*;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
import java.io.*;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
import javax.microedition.midlet.*;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
import javax.microedition.lcdui.*;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
import java.lang.Thread;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
public class MainMid extends MIDlet本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
MainPit myScreen;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
boolean first = true;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
public MainMid()本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
myScreen = new MainPit(this);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
protected void destroyApp(boolean unconditional) 本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  protected void pauseApp() 本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  { 本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
protected void startApp() 本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
Display.getDisplay(this).setCurrent(myScreen);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
Display.getDisplay(this).setCurrent(myScreen);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
if(first)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  try本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  {本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  Thread myThread = new Thread(myScreen);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  myThread.start();本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  catch(Error e)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  {本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  destroyApp(false);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  notifyDestroyed();本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  first = false;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
//游戏结束本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
public void exit()本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
destroyApp(true);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
notifyDestroyed();本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
} 本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
class MainPit extends Canvas implements Runnable本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
MainMid myMid;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
//按键表本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
private static final byte KEY_NONE     = 0;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
private static final byte KEY_UP     = -1;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
private static final byte KEY_DOWN     = -2;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
private static final byte KEY_LEFT     = -3;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
private static final byte KEY_RIGHT   = -4;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
private static final byte KEY_FIRE     = -5;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
private static final byte KEY_GAM_LEFT = -6;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
private static final byte KEY_GAM_RIGHT = -7;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
private int hangfire = 300;//延时大小本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
Graphics gb;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
// private Image bufImg;//缓存本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
//屏幕大小本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
private int nWidth;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
private int nHeight;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
public MainPit(MainMid mid)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
myMid = mid;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
nWidth = getWidth();//屏幕大小本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
nHeight = getHeight();本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
cw = nWidth / 10;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
ch = nHeight / 10;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
// try{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
//   bufImg = Image.createImage(nWidth,nHeight);//申请缓存空间本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
//   gb = bufImg.getGraphics();本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
// }catch(Exception e){}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
public void paint(Graphics g)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
gb = g;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
void showBegin()本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
gb.setColor(0x0000ff00);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
gb.fillArc(begin_x * cw, begin_y * ch, cw, ch, 0, 360);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
int state = 0;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
public void run()本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
while(true)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  switch(state)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  {本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  case 0:本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  showMap();本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  showCursor();本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  break;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  case 1:本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  showMap();本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  showBegin();本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  showCursor();本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  break;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  case 2:本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  showMap();本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  showBegin();本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  showfather(end_x, end_y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  showCursor();本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  break;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  repaint();本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  serviceRepaints();本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  try{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  Thread.sleep(hangfire);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  System.gc();本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  Thread.yield();本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }catch(Exception e){}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
int cx,cy;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
private void showCursor()本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
gb.setColor(0x000000ff);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
gb.drawRect(cx * cw+2,cy*ch+2,cw-4,ch-4);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
int cw,ch;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
private void showMap()本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
clearScreen(0x00ffffff);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
for(int i =0 ; i < 10; i++){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  for(int j = 0; j < 10; j++){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(moveSpace[j]==1){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  gb.setColor(0x00000000);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  gb.drawRect(j * cw, i * ch, cw, ch);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  else{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  gb.setColor(0x00000000);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  gb.fillRect(j * cw, i * ch, cw, ch);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
private void clearScreen(int c)//用颜色c刷新屏幕本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
gb.setColor(c);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
gb.fillRect(0,0,nWidth,nHeight);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
public void keyPressed(int keyCode)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
switch(keyCode)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  case KEY_UP:本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(cy>0)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  cy--;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  break;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  case KEY_DOWN:本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(cy <9)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  cy++;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  break;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  case KEY_LEFT:本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(cx > 0)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  cx--;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  break;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  case KEY_RIGHT:本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(cx < 9)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  cx++;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  break;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  case KEY_FIRE:本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  case KEY_GAM_LEFT:本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  switch(state)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  {本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  case 0:本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
    begin_x = cx;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
    begin_y = cy;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
    state = 1;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  break;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  case 1:本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
    end_x = cx;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
    end_y = cy;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
    AAsterisk();本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
    state = 2;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  break;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  case 2:本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
    state = 0;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  break;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  break;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  case KEY_GAM_RIGHT:本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  state = 0;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  break;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
private int moveSpace[][] = {本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{1,1,1,1,1,1,1,1,1,1},本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{1,1,1,1,1,1,1,1,1,1},本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{1,1,1,1,1,1,1,1,1,1},本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{1,1,255,255,255,1,1,1,1,1},本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{1,255,1,1,1,1,1,1,1,1},本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{1,255,1,1,1,1,1,1,1,1},本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{255,255,255,1,1,1,1,1,1,1},本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{1,1,255,1,1,1,1,1,1,1},本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{1,1,1,1,1,1,1,1,1,1},本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{1,1,255,1,1,1,1,1,1,1}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
};本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
private int openList[][] = new int[100][2];本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
private int closeList[][] = new int[100][2];本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
private int mapInfo[][][] = new int[10][10][6];本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
private int openListLength = 0;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
private int closeListLength = 0;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
int begin_x = 0;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
int begin_y = 9;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
int end_x = 0;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
int end_y = 0;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
void addInOpenList(int x, int y)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
openList[openListLength][0] = x;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
openList[openListLength][1] = y;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
openListLength++;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
void addInCloseList(int x, int y)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
closeList[closeListLength][0] = x;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
closeList[closeListLength][1] = y;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
closeListLength++;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
void removeFromOpenList(int x, int y)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
for(int i = 0; i < openListLength; i++){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(openList[0] == x&&openList[1] == y){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  openListLength--;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  for(int j = i; j < openListLength; j++){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  for(int k = 0; k < 2; k++){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
    openList[j][k] = openList[j+1][k];本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  openList[openListLength][0] = 0;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  openList[openListLength][0] = 1;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  break;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
boolean isInOpenList(int x, int y)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
for(int i = 0; i < openListLength; i++){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(openList[0] == x&&openList[1] == y){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  return true;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
return false;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
boolean isInCloseList(int x, int y)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
for(int i = 0; i < closeListLength; i++){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(closeList[0] == x&&closeList[1] == y){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  return true;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
return false;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
void setFather(int x, int y, int fx, int fy)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
mapInfo[y][x][0] = fx;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
mapInfo[y][x][1] = fy;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
int getH(int x, int y)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
return Math.abs(x - end_x) + Math.abs(y - end_y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
int getG(int x, int y)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
return mapInfo[mapInfo[y][x][1]][mapInfo[y][x][0]][2] + mapInfo[y][x][5];本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
int getF(int x, int y)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
return mapInfo[y][x][2]+mapInfo[y][x][3];本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
void getGHF(int x, int y)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
mapInfo[y][x][2] = getG(x,y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
mapInfo[y][x][3] = getH(x,y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
mapInfo[y][x][4] = getF(x,y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
boolean isBalk(int x, int y)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
if(x < 0||x >=10||y < 0||y >=10){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  return true;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
if(mapInfo[y][x][5] >= 100){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  return true;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
return false;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
int theMinFInOpenList()本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
int min = 100;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
int index = -1;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
for(int i = 0; i < openListLength; i++){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(min > mapInfo[openList[1]][openList[0]][4]){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  min = mapInfo[openList[1]][openList[0]][4];本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  index = i;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
return index;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
void AAsterisk()本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
closeListLength = 0;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
openListLength = 0;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
for(int i = 0; i < 10; i++){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  for(int j = 0; j < 10; j++){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  mapInfo[j][5] = moveSpace[j];本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  mapInfo[j][0] = j;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  mapInfo[j][1] = i;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  mapInfo[j][2] = Math.abs(i - begin_y) + Math.abs(j - begin_x);;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  mapInfo[j][3] = Math.abs(i - end_y) + Math.abs(j - end_x);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  mapInfo[j][4] = 100;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
mapInfo[begin_y][begin_x][2] = 0;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
addInCloseList(begin_x,begin_y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
//System.out.println(begin_x+" "+begin_y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
//System.out.println("0");本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
if(!isBalk(begin_x + 1,begin_y)){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  addInOpenList(begin_x + 1,begin_y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  setFather(begin_x + 1,begin_y,begin_x,begin_y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  getGHF(begin_x + 1,begin_y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
//System.out.println("1");本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
if(!isBalk(begin_x - 1,begin_y)){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  addInOpenList(begin_x - 1,begin_y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  setFather(begin_x - 1,begin_y,begin_x,begin_y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  getGHF(begin_x - 1,begin_y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
//System.out.println("2");本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
if(!isBalk(begin_x,begin_y + 1)){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  addInOpenList(begin_x,begin_y + 1);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  setFather(begin_x,begin_y + 1,begin_x,begin_y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  getGHF(begin_x,begin_y + 1);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
//System.out.println("3");本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
if(!isBalk(begin_x,begin_y - 1)){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  addInOpenList(begin_x,begin_y - 1);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  setFather(begin_x,begin_y - 1,begin_x,begin_y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  getGHF(begin_x,begin_y - 1);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
AAsterisk_t();本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
void AAsterisk_t()本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
int minIndex;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
int x, y;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
minIndex = theMinFInOpenList();本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
if(minIndex == -1){return;}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
x = openList[minIndex][0];本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
y = openList[minIndex][1];本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
addInCloseList(x,y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
removeFromOpenList(x,y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
if(!isBalk(x + 1,y)){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(!isInCloseList(x + 1,y)){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(isInOpenList(x + 1,y)){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(mapInfo[y][x + 1][2] > getG(x + 1,y)+mapInfo[y][x + 1][5]){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
    setFather(x + 1,y,x,y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
    getGHF(x + 1,y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  else{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  addInOpenList(x + 1,y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  setFather(x + 1,y,x,y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(x + 1 == end_x&&y == end_y){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
    return;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  getGHF(x + 1,y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
if(!isBalk(x - 1,y)){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(!isInCloseList(x-1,y)){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(isInOpenList(x-1,y)){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(mapInfo[y][x-1][2] > getG(x-1,y)+mapInfo[y][x][5]){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
    setFather(x-1,y,x,y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
    getGHF(x-1,y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  else{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  addInOpenList(x-1,y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  setFather(x-1,y,x,y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(x - 1 == end_x&& y == end_y){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
    return;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  getGHF(x-1,y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
if(!isBalk(x,y+1)){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(!isInCloseList(x,y+1)){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(isInOpenList(x,y+1)){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(mapInfo[y+1][x][2] > getG(x,y+1) +mapInfo[y+1][x][5]){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
    setFather(x,y+1,x,y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
    getGHF(x,y+1);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  else{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  addInOpenList(x,y+1);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  setFather(x,y+1,x,y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(x == end_x&&y + 1 == end_y){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
    return;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  getGHF(x,y+1);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
if(!isBalk(x,y-1)){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(!isInCloseList(x,y-1)){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(isInOpenList(x,y-1)){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(mapInfo[y-1][x][2] >getG(x,y-1)+mapInfo[y-1][x][5]){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
    setFather(x,y-1,x,y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
    getGHF(x,y-1);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  else{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  addInOpenList(x,y-1);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  setFather(x,y-1,x,y);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  if(x == end_x&& y - 1== end_y){本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
    return;本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  getGHF(x,y-1);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
  }本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
AAsterisk_t();本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
void showfather(int x, int y)本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
{本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
if(x == begin_x&&y == begin_y){System.out.println();return;}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
System.out.print("("+mapInfo[y][x][0]+","+mapInfo[y][x][1]+")");本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
int fx = mapInfo[y][x][0];本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
int fy = mapInfo[y][x][1];本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
gb.setColor(0x00ff0000);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
gb.fillArc(fx * cw, fy * ch, cw,ch, 0, 360);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
showfather(mapInfo[y][x][0],mapInfo[y][x][1]);本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
本帖子来源于无线论坛[http://www.j2me.com.cn/bbs] 
}
  
原创粉丝点击