0

我需要编写名为 clearStacks() 的方法和另一个名为 pickUpStack() 的方法,如下所示:

  • pickUpStack() 应该拿起一叠蜂鸣器,数数并打印出它的大小。它应该计算蜂鸣器并打印出堆栈中有多少。

  • clearStacks() 应该清除一排蜂鸣器。它应该调用 pickUpStack() 来完成拾取一个堆栈的工作。

我的代码包括蜂鸣器的总数,但是我需要写下从每个堆栈中拾取了多少蜂鸣器。

int pickUpStack()
{
    int numBeeper=0;
    while(isItemOnGroundAtRobot())
    {
        pickUpItemWithRobot();
        ++numBeeper;
    }
    return numBeeper;
}

void moveRobotToNextStack()
{
    while(!isItemOnGroundAtRobot()&&!isRobotFacingWall())
        moveRobotForwards();
}

void clearStacks()
{    
    int numBeeper=0;
    numBeeper=pickUpStack();
    while(!isRobotFacingWall())
    {
        moveRobotToNextStack();
        numBeeper+=pickUpStack();
    }
    println("Beepers: "+numBeeper);
}
4

1 回答 1

0

有多种方法可以计算从每个堆栈中拾取的蜂鸣器数量。你选择哪一个真的取决于你的要求。

pickUpStack()从您的方法打印它:

int pickUpStack()
{
    int numBeeper=0;
    while(isItemOnGroundAtRobot())
    {
        pickUpItemWithRobot();
        ++numBeeper;
    }
    println("Beepers from current stack" + numBeeper);
    return numBeeper;
}

或者保留一个List返回值

void clearStacks()
{    
    List beeperList = new ArrayList();
    int numBeeper=0;
    numBeeper=pickUpStack();
    while(!isRobotFacingWall())
    {
        moveRobotToNextStack();
        int currentBeepers = pickUpStack();
        beeperList.add(currentBeepers);

        numBeeper+=currentBeepers ;
    }

    for(int i = 0; i< beeperList.size(); i++)
        println("Stack " + i + " contains " + beeperList.get(i) + " beepers");

    println("Total beepers: "+numBeeper);
}
于 2013-10-22T01:53:01.093 回答