Java,移动机器人

时间:2013-09-30 21:31:27

标签: java

方法pickUpNBeepersCheckIfAll()接受一个整数参数,并使最近创建的机器人从其当前位置的蜂鸣器堆栈中获取该数量的蜂鸣器。 您可以假设堆栈中有足够的蜂鸣器供机器人安全地执行此操作。 如果机器人已经在当前位置拾取所有蜂鸣器,则该方法应该返回true;如果地面上仍有蜂鸣器,则该方法应该返回。

我的方法:

boolean pickUpNBeepersCheckIfAll(int beeper) {
    int counter=0;
        while(beeper>counter) {
            pickUpItemWithRobot(); 
            counter++;
            beeper--;
            if(beeper==0) return true;
        } 
     return false;
   }

这是我的代码,我找不到错误,因为有四个结果: 拿起随机Beepers(不是全部),拿起一个蜂鸣器,拿起10个蜂鸣器并拿起零蜂鸣器。所以我在这里有2个错误。

1 个答案:

答案 0 :(得分:0)

我想我知道你失败的地方。

基本上,一堆蜂鸣器与您想要拾取的蜂鸣器的数量不同。你把它们视为同样的事情。

我也很困惑为什么你有一个柜台。你不需要知道你拿到了多少蜂鸣器 - 你总是会拿起你所摄取的数量。你唯一关心的是你有没有留下任何蜂鸣器挑选了所有这些。

我会做什么(基于您的代码和问题)

boolean pickUpNBeepersCheckIfAll(int beeper) {
     for(int x = 0; x < beeper; x++)
         pickUpItemWithRobot();
         beeperStack--;
     }
     if(beeperStack > 0)
     {
         return false;
     }
     return true;
   }

其中beeperStack是全局预定义变量,包含此特定堆栈内的蜂鸣器数量。

编辑:我还要记住,我们需要的信息比“它不起作用!”更多。了解pickupItemWithRobot()所做的事情会有所帮助。