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

> oke
>
> Maybe I understand something not right,
>
> Lets say we have this scenario.
>
> Robot is on position (0,0)
> now it turns left so the robot faces East
>

I don't understand what position has to do with direction nor why that
would be a problem. They are two distinct attributes.
Point and Dictionary are sufficient classes to model the limited
requirements of this exercise.
You could model a new class DirectionVector which internalizes the Point
used to provide the direction and provides its own name, eliminating the
need for a look up of any kind.


> or this scenario
>
> Robot is on position (0,0)
> now it turns right so the robot faces west.
>
> it looks that dictionary cannot provide this answer.
> or do I overlook something
>
> Roelof
>
>
>
> Op 18-4-2019 om 19:17 schreef Richard Sargent:
>
> On Thu, Apr 18, 2019 at 10:01 AM Roelof Wobben <r.wob...@home.nl> wrote:
>
>> yep, I have read that one
>> but I never gets a answer how I can "convert"  a point to something like
>> north, east
>>
>> because the challenge wants this to be the answer :
>>
>> (Dictionary new
>>                 add: 'direction' -> 'north';
>>                 add:
>>                     'position'
>>                         ->
>>                             (Dictionary new
>>                                 add: 'x' -> 0;
>>                                 add: 'y' -> 0;
>>                                 yourself);
>>                 yourself)
>>
>
> If you have previously defined a "representation map", you would be golden.
>
> e.g.
> Dictionary new
> at: self northDirectionVector put: 'north';
> at: self eastDirectionVector put: 'east';
> at: self southDirectionVector put: 'south';
> at: self westDirectionVector put: 'west';
> yourself.
>
> Then:
> (Dictionary new
>                 add: 'direction' -> (self directionRepresentationMap at:
> self directionVector);
> ...
>
>
>>
>> and I think I need then to use if then , which I try to avoid as much as
>> possible.
>>
>> Roelof
>>
>>
>>
>> Op 18-4-2019 om 18:33 schreef Richard Sargent:
>>
>> 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