⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 displayable1.java

📁 j2me源代码
💻 JAVA
字号:
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.Sprite;
import java.util.*;

public class Displayable1 extends Canvas{
  Sprite[] s=new Sprite[12];
  Random random=new Random();
  int x=1,y=1;
  boolean isFir=true;
  int oldx,oldy;
  boolean isWin=false;
  public Displayable1(int num) {
    this.setFullScreenMode(true);
    try {
      int[] seq=new int[12];
      for(int i=0;i<seq.length;i++){
        seq[i]=i;
      }
      for(int i=0;i<100;i++){
        int a=random.nextInt(12);
        int b=random.nextInt(12);
        int temp=seq[a];
        seq[a]=seq[b];
        seq[b]=temp;
      }
      Image img=Image.createImage("/"+num+".png");
      for(int i=0;i<s.length;i++){
        s[i]= new Sprite(img,80,80);
        s[i].setPosition((i%3)*80,(i/3)*80);
        s[i].setFrame(seq[i]);
      }
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
  }
  protected void paint(Graphics g) {
    for(int i=0;i<s.length;i++){
      s[i].paint(g);
    }
    g.setColor(255,255,255);
    g.drawLine(80,0,80,320);
    g.drawLine(160,0,160,320);
    g.drawLine(0,80,240,80);
    g.drawLine(0,160,240,160);
    g.drawLine(0,240,240,240);

    g.setColor(255,0,0);
    g.drawRect(x*80,y*80,80,80);
    g.drawRect(x*80+1,y*80+1,80-2,80-2);
    if(!isFir){
      g.setColor(0,255,0);
      g.drawRect(oldx*80,oldy*80,80,80);
      g.drawRect(oldx*80+1,oldy*80+1,80-2,80-2);
    }
  }
  public void keyPressed(int key)
  {
    if(key==-5&&isWin){
          mainMIDlet.display.setCurrent(new InputForm());
    }

    if(key==-1){
      y--;
      if(y<0) y=3;
    }
    if(key==-2){
      y++;
      if(y>3) y=0;
    }
    if(key==-3){
      x--;
      if(x<0) x=2;
    }
    if(key==-4){
      x++;
      if(x>2) x=0;
    }
    if(key==-5){
      if(isFir){
        oldx=x;
        oldy=y;
        isFir=false;
      }else{
        int a=x+y*3;
        int b=oldx+oldy*3;
        int f=s[a].getFrame();
        s[a].setFrame(s[b].getFrame());
        s[b].setFrame(f);
        isFir=true;
        boolean isWintem=true;
        for (int i = 0; i < s.length; i++) {
          if(s[i].getFrame()!=i){
            isWintem = false;
            break;
          }
        }
        isWin = isWintem;
      }
    }
    if(key==-6)
      mainMIDlet.display.setCurrent(new InputForm());

  this.repaint();
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -