2016-11-22 96 views
0

我想要一个智能代理右转3次。既然你不能返回多个对象,我怎样才能连续3次调用this.buildPhysicalAction(TurnRightAction.class)Java:你如何按顺序返回多个对象?

public class VacuumWorldExplorerMind extends VacuumWorldDefaultMind { 

    @Override 
    public EnvironmentalAction decide(Object... parameters) { 

    PerceiveAction range = new PerceiveAction(); 
    VacuumWorldCoordinates currentLocation; 

    this.buildPhysicalAction(TurnRightAction.class); 
    this.buildPhysicalAction(TurnRightAction.class); 
    this.buildPhysicalAction(TurnRightAction.class); 

    while (true) { 

     // if perceive range-checkForWall == 1 
     // turn left 
     // count steps made = stepsMade 
     if (range.getPerceptionRange() == 1) { 
     return this.buildPhysicalAction(TurnLeftAction.class); 
     } 

     return this.buildPhysicalAction(MoveAction.class); 
    } 
    } 
} 
+2

您可以返回一个数组,其中可以包含多个值。 –

+0

如何将this.buildPhysicalAction(TurnRightAction.class)添加到数组?你的意思是ArrayList? – Naomi

+1

Slighlty无关,但我可以问'while(true)'循环的重点是什么?代码总是返回它的第一次迭代,所以循环似乎毫无意义 –

回答

0

这基本上是一个设计选择。 一种方法可以定义如下类:TurnRightAction,TurnRight 两次 Action和TurnRight 三次元当需要转动一次,两次或三次时分别采取行动和呼叫。

另一种选择是您已经在做什么,请致电TurnRightAction多少次需要采取行动。

+0

调用this.buildPhysicalAction(TurnRightAction.class);单独不会右转,我需要返回this.buildPhysicalAction(TurnRightAction.class); – Naomi

+0

所以你可以返回TurnRightThriceAction 3次右转。另一种方法是返回包含this.buildPhysicalAction(TurnRightAction.class)的包装类并计数。 – nanosoft