import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class win extends Frame implements KeyListener
{
int m=0,n=1;
int i,j; //y2,y3
int a[][]={{1,1,2,1,1,1,1,1,1,1,1,1},//x0坐标解释及地图初始化
{1,1,0,1,0,0,1,0,1,0,0,1},//x1
{1,1,0,0,0,1,1,0,1,1,0,1},
{1,1,0,1,0,0,1,0,0,0,0,1},
{1,1,0,1,0,0,1,1,1,0,0,1},
{1,1,0,1,0,1,1,0,1,1,0,1},
{1,1,1,0,0,0,1,0,0,0,0,1},
{1,1,0,0,1,0,1,0,1,0,0,1},
{1,1,0,1,0,0,0,0,1,0,0,1},
{1,1,1,1,1,1,1,1,1,1,0,1}};
void draw() //绘制窗口
{
setBounds(100,100,310,360);
setTitle("迷宫(按向下键开始)");
this.addKeyListener(this);
addWindowListener(new closeWin());
setVisible(true);
}
public void paint (Graphics g) //绘制地图
{
g.clearRect(0,0,310,360);
for(i=0;i<11;i++)
for(j=0;j<12;j++)
{
if(a[i][j]==1)
{
g.setColor(Color.black);
g.fillRect(i*30,j*30,30,30);
}
else if(a[i][j]==2)
{
g.setColor(Color.red);
g.fillRect(i*30,j*30,30,30);
}
}
}
public void keyPressed(KeyEvent e) //移动红色方块
{
if(e.getKeyCode()==KeyEvent.VK_UP&&a[m][n-1]!=1)//向上
{
a[m][n-1]=2;
a[m][n]=0;
n=n-1;
repaint();
}
else if(e.getKeyCode()==KeyEvent.VK_DOWN&&a[m][n+1]!=1)//向下
{
a[m][n+1]=2;
a[m][n]=0;
n=n+1;
repaint();
}
else if(e.getKeyCode()==KeyEvent.VK_LEFT&&a[m-1][n]!=1)//向左
{
a[m-1][n]=2;
a[m][n]=0;
m=m-1;
repaint();
}
else if(e.getKeyCode()==KeyEvent.VK_RIGHT&&a[m+1][n]!=1)//向右
{
a[m+1][n]=2;
a[m][n]=0;
m=m+1;
repaint();
}
}
public void keyTyped(KeyEvent e)//键盘事件必须
{}
public void keyReleased(KeyEvent e)//键盘事件必须
{}
}
class closeWin extends WindowAdapter//创建窗口关闭
{
public void windowClosing(WindowEvent e)
{
Frame frm = (Frame)(e.getSource());
frm.dispose();
System.exit(0);
}
}
public class moverect
{
public static void main(String args[])
{
win w =new win();
w.draw();
}
}
import java.awt.event.*;
import javax.swing.*;
class win extends Frame implements KeyListener
{
int m=0,n=1;
int i,j; //y2,y3
int a[][]={{1,1,2,1,1,1,1,1,1,1,1,1},//x0坐标解释及地图初始化
{1,1,0,1,0,0,1,0,1,0,0,1},//x1
{1,1,0,0,0,1,1,0,1,1,0,1},
{1,1,0,1,0,0,1,0,0,0,0,1},
{1,1,0,1,0,0,1,1,1,0,0,1},
{1,1,0,1,0,1,1,0,1,1,0,1},
{1,1,1,0,0,0,1,0,0,0,0,1},
{1,1,0,0,1,0,1,0,1,0,0,1},
{1,1,0,1,0,0,0,0,1,0,0,1},
{1,1,1,1,1,1,1,1,1,1,0,1}};
void draw() //绘制窗口
{
setBounds(100,100,310,360);
setTitle("迷宫(按向下键开始)");
this.addKeyListener(this);
addWindowListener(new closeWin());
setVisible(true);
}
public void paint (Graphics g) //绘制地图
{
g.clearRect(0,0,310,360);
for(i=0;i<11;i++)
for(j=0;j<12;j++)
{
if(a[i][j]==1)
{
g.setColor(Color.black);
g.fillRect(i*30,j*30,30,30);
}
else if(a[i][j]==2)
{
g.setColor(Color.red);
g.fillRect(i*30,j*30,30,30);
}
}
}
public void keyPressed(KeyEvent e) //移动红色方块
{
if(e.getKeyCode()==KeyEvent.VK_UP&&a[m][n-1]!=1)//向上
{
a[m][n-1]=2;
a[m][n]=0;
n=n-1;
repaint();
}
else if(e.getKeyCode()==KeyEvent.VK_DOWN&&a[m][n+1]!=1)//向下
{
a[m][n+1]=2;
a[m][n]=0;
n=n+1;
repaint();
}
else if(e.getKeyCode()==KeyEvent.VK_LEFT&&a[m-1][n]!=1)//向左
{
a[m-1][n]=2;
a[m][n]=0;
m=m-1;
repaint();
}
else if(e.getKeyCode()==KeyEvent.VK_RIGHT&&a[m+1][n]!=1)//向右
{
a[m+1][n]=2;
a[m][n]=0;
m=m+1;
repaint();
}
}
public void keyTyped(KeyEvent e)//键盘事件必须
{}
public void keyReleased(KeyEvent e)//键盘事件必须
{}
}
class closeWin extends WindowAdapter//创建窗口关闭
{
public void windowClosing(WindowEvent e)
{
Frame frm = (Frame)(e.getSource());
frm.dispose();
System.exit(0);
}
}
public class moverect
{
public static void main(String args[])
{
win w =new win();
w.draw();
}
}