On Thu, Apr 18, 2019 at 8:57 AM Roelof Wobben <r.wob...@home.nl> wrote:

> Hello,
>
> I know I have asked earlier but im still stuck on this one :
> https://github.com/exercism/problem-specifications/blob/master/exercises/robot-simulator/description.md
>
> I tried with all double dispatch but that will be a lot of duplicate
> classes
>
> The problem I cannot solve right is that a robot can move or turn. when a
> robot turns only the direction the robot is facing changes and the position
> not. when a robot moves the facing direction stays the same but the
> position changes. but the change is dependend on the facing. Also the new
> facing direction is dependend on the old facing direction/
> How can I model this the best.
>
> I already have a object Robot that contains the facing direction and the
> current position
> or tried without it but then I use a lot of if then's
>
>
> so it  there  a better way to model this problem so it will be all nice
> and readable code.
>

If I remember correctly, Richard O'Keefe gave you a viable design. 1) Use a
Point for your direction vector. 2) Use a second Point for your position.

e.g. if you align the compass with a Cartesian plane, 0@1 is North, 0@-1 is
South, 1@0 is East, and -1@0 is West. When you move, you add the direction
vector to your current position. If you allow movements of greater than a
single unit, you multiply the direction vector by the distance before
adding that product to the position.


> Roelof
>
>

Reply via email to