用java编写迷宫源程序_我第一天写博客,把以前的程序放上去(用Java写的迷宫)...

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();  } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值