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(); } }
用java编写迷宫源程序_我第一天写博客,把以前的程序放上去(用Java写的迷宫)...
最新推荐文章于 2022-10-23 15:38:15 发布