Op 31-3-2019 om 03:47 schreef Richard O'Keefe:
Question 1.�� Should that be #asDictionary?
yes, it does.
Question 2.�� If not, what's a Dictonary?Question 3.�� I see you are using self-encapsulation,������������������������ with a getter 'self robot'������������������������ and a setter 'self robot: something'.������������������������ Of course that means that outside code������������������������ can freely smash your "robot" property,������������������������ unless #robot: checks that its argument������������������������ makes sense.�� Does it?
no, it does not.
Question 4.�� What kind of thing *is* "robot".������������������������ Have you checked that 'Robot directionLooking: ...'������������������������ returns an instance of Robot?�� If you accidentally������������������������ omitted '^' it might return the Robot class itself.
yes, I forget the ^ thing
see this code.
directionLooking: aString
������ self new direction: aString
so I have to think well how to return a instance of a Robot here.
as far as I see�� I do not have a robot yet.
createDirection: aString position: aCollection
������ self robot: (Robot directionLooking: aString) yourself.
������ ^ self robot asDictionary
or I overlook something.
Question 5.�� Are you sure that 'self robot' returns������������������������ what you think it does?�� Have you checked?
yes, I checked. self Robot�� give me a variable robot which is a Robot.
Question 6.�� Does Robot have an #asDictionary method?������������������������ Does Robot have an #asDictonary method?
Yes, it does
Question 7.�� Why is "aCollection" not used in this method?
Because I�� wanted to be�� sure things are working before I added the position which is a difficult one.
Question 8.�� Why are you using 'yourself'?
I thought I was needed so I get a instance of a Robot back.
Question 9.�� Why does the caller want a dictionary instead of������������������������ a Robot?�� What should be in that dictionary?
The same data as the Robot has but then in a dictionary form.
That is what I try to achieve.
There are more questions but those will do to be going on with.If your #robot: method began like������ robot: aRobot���������� (aRobot isKindOf: Robot)�������������� ifFalse: [aRobot error: 'not an instance of Robot'].you would have caught what I suspect is your problem.Check question 4.
On Sun, 31 Mar 2019 at 07:19, Roelof Wobben <r.wobben@home.nl> wrote:
Hello,
Im busy with a new challenge from exercism.
Where I have to keep track of a robot , where it facing and on that
coordinate the robot is.
so I made this function what the test wanted
createDirection: aString position: aCollection
�������� self robot: (Robot directionLooking: aString) yourself.
�������� ^ self robot asDictonary
I can see that on the first part a new robot is made with the right data.
but the test wants the data back as a Dictonary
that is why I made the self robot asDictonary line
but to my suprise the compiler wants it be a class method where I expect
it to be a instance method.
Can someone explain to my why this is ?
Roelof