Randomwalk不是Walkking JAVA

问题描述 投票:-1回答:1

我正在创建一个模拟结肠蚁的程序,我想在随机游走中创建一个与之匹配的小点,我的前提是该点不会偏离我理解的初始位置,或者存在错误没有出现错误消息

   public class Ant extends JFrame
{
    static int x = 20;
    static int y = 60;
    int rad = 15; 
    Ant()
    {
        setVisible(true);
        setSize(500, 500);  
        setResizable(false);
    }

    public void move(int x , int y)
    {

        double randomDouble = Math.random();
        randomDouble = randomDouble * 4 + 1;
        int randomInt = (int) randomDouble;
        switch(randomInt) {

        case 1 : 
            x+=1;
        case 2 : 
            x-=1;
        case 3 : 
            y+=1;
        case 4 : 
            y-=1;

        } 

            repaint();


    }



    public void paint(Graphics g)
    {
        super.paint(g);
        g.fillOval(x, y, rad, rad);
    }


    public static void main(String[] args)
    {
         Ant a = new Ant();

         while(true)
          {
              a.move(x,y);
              a.repaint();
              try {
                  Thread.sleep(100);
              }catch(Exception e)
              {

              }       
          }
    }

}
java
1个回答
0
投票

您的move方法不会更改类变量(静态变量),但会更改局部变量。一种简单的方法是按照以下步骤修改您的代码:

步骤1:从move方法中删除局部变量,例如:

public void move() {
   ...
}

步骤2:在不传递任何变量的情况下调用它:

a.move();
© www.soinside.com 2019 - 2024. All rights reserved.