"GridWorld" 用于 ThinkJava 练习 5.1

"GridWorld" for ThinkJava Exercise 5.1

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

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

我卡在数字 3 上了,我不知道如何将 n 传递给 "move() method"

-请帮助我是新手

我的代码:

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


}

你的意思是你卡在了数字 3 上:

  1. Modify moveBug so that it takes an integer, n, as a parameter, and moves the bug n times (if it can).

意思是写一个循环,循环n次,每次迭代调用move()一次,if canMove() returns true.

顺便说一句:if (canMove() == true) {...} 说起来很长 if (canMove()) {...}

并修复 if 语句的缩进。

谢谢你指点我@Andreas 我的解决方案有效:

public static void moveBug(Bug aBug, int n){
    for(int i = 0; i < n; i++){
        if(aBug.canMove())
           {
           aBug.move();
           } else {
           aBug.turn();
           }
       }
   }