-1

新手完成 thinkJava 书籍并试图找出练习的答案之一。它要求我下载“GridWorld”文件并完成以下步骤:

  1. 编写一个名为 moveBug 的方法,该方法将 bug 作为参数并调用 move。通过从 main 调用它来测试您的方法。
  2. 修改 moveBug 以便它调用 canMove 并仅在可以移动的情况下移动 bug。
  3. 修改 moveBug 使其接受整数 n 作为参数,并将 bug 移动 n 次(如果可以)。
  4. 修改 moveBug 以便如果 bug 不能移动,它会调用 turn 代替。

我被困在数字 3 上,我不知道如何将 n 传递给“move() 方法”

-请帮助我是新手

我的代码:

import info.gridworld.actor.ActorWorld;
import info.gridworld.actor.Bug;
import info.gridworld.actor.Rock;

public class BugRunner
{
    public static void main(String[] args)
    {
        ActorWorld world = new ActorWorld();
        Bug redBug = new Bug();
        world.add(redBug);
        world.add(new Rock());
        world.show();
        moveBug(redBug,5);
        System.out.println(redBug.getLocation());
    }

    public static void moveBug(Bug aBug, int n){
        if(aBug.canMove() == true){
        aBug.move();
        } else {
        aBug.turn();
        }
    }


}
4

2 回答 2

0

你的意思是你被困在第3个:

  1. 修改 moveBug 使其接受整数 n 作为参数,并将 bug 移动 n 次(如果可以)。

这意味着编写一个循环,循环次数,每次迭代n调用一次,如果返回 true。move()canMove()

顺便说一句:if (canMove() == true) {...}是很长的路要走if (canMove()) {...}

并修复if语句的缩进。

于 2016-01-21T03:43:04.460 回答
0

感谢您向我指出@Andreas 我的有效解决方案:

public static void moveBug(Bug aBug, int n){
    for(int i = 0; i < n; i++){
        if(aBug.canMove())
           {
           aBug.move();
           } else {
           aBug.turn();
           }
       }
   }
于 2016-01-21T03:52:44.993 回答