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 > >