A stupid newbie question

john-reed.x.maffeo at mail.sprint.com john-reed.x.maffeo at mail.sprint.com
Sat Oct 6 21:03:17 UTC 2001


aPoint := Point readFromString:  ( FillInTheBlank  
	request: 'Next move?'
	initialAnswer: '1 at 1')  


I figured this out be going to String and browsing
the protocol. I found asNumber which contained
Number readFromStr:. I tried readFromStr: on
Point and it worked.

NOTE: I used ':=' instead of '_' for readability in email.

The answer is out there!

Best Regards,

John-Reed Maffeo 

> -----Original Message-----
> From: lemeia [mailto:lemeia at bigpond.com]
> Sent: Saturday, October 06, 2001 1:42 PM
> To: squeak-dev
> Cc: lemeia
> Subject: A stupid newbie question
> 
> 
> 
> Hi all,
> 
> I'm having a particular problem which is probably laughably stupid and
> although I managed a workaround the whole implementation is 
> looking really
> sloppy.
> 
> I'm trying to implement an example from the book: 
> 'Discovering Smalltalk' -
> the TicTacToeGame if anyone is interested.
> 
> Now I know some of the code won't work as it isn't written 
> for Squeak. I
> have translated it as best I can and have actually managed to 
> implement a
> full solution.
> 
> However.....
> 
> The idea is to prompt the user for a simple point on a 3x3 
> grid meaning:
> answer isKindOf: Point.
> But when implementing..
> 
> 
> |aPoint|
> 
> aPoint := FillInTheBlank
> 	request: 'Next move?'
> 	initialAnswer: '1 at 1'.
> 
> ..a String is bound to the aPoint variable.
> 
> As part of the move's validation process a method is used to determine
> firstly whether the user has actually entered a point and 
> secondly whether
> the point is valid. But it won't even pass the    aPoint 
> isKindOf: Point
> test.
> 
> Now feel free to laugh out loud at my workaround, but this is 
> how I turned
> achieved the desired result:
> 
> 
> |aPoint|
> 
> aPoint := FillInTheBlank
> 	request: 'Next move?'
> 	initialAnswer: '1 at 1'.
> aPoint := Point x: ((aPoint at: 1) asInteger - 48) y: ((aPoint at: 3)
> asInteger - 48).
> 
> 
> This binds a Point instance to aPoint which is the desired 
> outcome. However,
> I don't personally think the workaround is very acceptable. 
> For a start I
> could enter 'Johnny Rotten' and the application would happily 
> convert my
> answer into a Point instance which I think is very sloppy. I 
> would need an
> extra layer of validation to stop this. Mind you - any string 
> other than the
> legal values for the game will come up with an 'illegal move' 
> response (or
> at least they seem to).
> 
> So my question is how to a turn a String response '1 at 1' into 
> Point instance
> 1 at 1? And it actually opens up a larger question for me. Using
> FillInTheBlank, how to I return anything other than String 
> objects? From my
> example it seems that if I had used the class to prompt me 
> for a number I
> would be return '5' rather than 5, which isn't much use if 
> I'm wanting to
> make calculations with the answer.
> 
> I know the answer would have to be very simple, but I just 
> haven't found the
> solution in the class library yet, or any tutorials or books I have.
> 
> Just to try your patience I thought I'd add another question.
> 
> Now that I have the application functioning I would like to 
> make it into an
> .exe file to see how it functions outside of the Squeak development
> environment. The only info I've found so far on doing this is to type:
> 
> CCodeGenerator new initialize addClass: ClassName) codeString.
> 
> Inspecting this gives me some C code with an #include 'sq.h'  
> line in it. I
> don't have this header file so where would I get it? Is this 
> all I need to
> do to turn a Squeak application into an .exe?
> 
> I'm presuming I would have to do this with all Classes I 
> create to make the
> application plus any other pre-existing Classes I have 
> modified or created
> that happen to be used within the application.
> 
> I have a GNU C/C++ compiler so I'm guessing that should be enough for
> compilation.
> 
> Thanks for perservering.
> 
> Regards
> Patrick
> 
> 
> 
> 
> 





More information about the Squeak-dev mailing list