2013-09-30 43 views
0

方法pickUpNBeepersCheckIfAll()使用整型参数,并使最近创建的机器人从当前位置的蜂鸣器堆栈中拾取该蜂鸣器的数量。 您可以假设堆栈中有足够的蜂鸣器可以安全地执行此操作。 如果机器人在当前位置拾取了所有的蜂鸣器,该方法应该返回true,否则如果地面上仍有蜂鸣器,则返回false。Java,移动机器人

我的方法:

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

这里是我的代码,我找不到一个错误,因为有四种结局: 拿起随机传呼机(不是全部),拿起一个蜂鸣器,挑增加10名蜂农并提取零位蜂商。所以我在这里有两个错误。

+9

问题是什么? – iamnotmaynard

+2

你应该在相同的迭代中递减'beeper'并递增'counter' ...? idk,看起来不太正确 – chancea

+1

虽然我不明白你在问什么,但我很确定问题在于“counter”变量不应该存在。你的循环条件应该是'while(beeper> 0)' – bengoesboom

回答

0

我想我看你在哪里失败。

基本上,一堆的蜂箱是不同的从您要提取的蜂箱的数量。你把他们当作同一件事。

我也很困惑你为什么有柜台。你不需要知道你拿到了多少蜂箱 - 你总是会拿起与你相同的号码。你唯一关心的是在你有没有留下任何蜂箱把他们全部拿起来。我会做什么(根据您的代码和问题)

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

其中beeperStack是包含在这个特殊的堆内寻呼机的数量在全球预先定义的变量

编辑:我还记得,我们需要更多的信息,而不是“它不工作!”。知道pickItemWithRobot()会做些什么会有所帮助。