[Seaside] Design Question of a very small game
Avi Bryant
avi at beta4.com
Thu Oct 21 12:27:10 CEST 2004
On Oct 20, 2004, at 10:05 PM, Alexandre Bergel wrote:
> I would like to know a bit your opinion about the code I just wrote.
> It consist in a very small game: the computer choose randomly a number
> between 0 and 100, and the user has to guess it. For each answer, the
> computer says: 'too litle' or 'too big'.
>
> It is composed of 5 classes with a couple of method for each of them.
> Do you have a better design for this simple game ?
Well, one thing that's odd is your use of SimpleGame and
SimpleGameTask. There's no need to have a SimpleGame that just calls
SimpleGameTask as the only thing it does - just set SimpleGameTask as
the root component (put the class side initialize method with
#registerAsApplication on it instead). And the way you do this call is
wrong - you send #call: from SimpleGame's #renderContentOn:, which you
should never do (yes, it sometimes works, but it has unpredictable
consequences). I understand why you did it, but that's exactly the
problem that WATask was written to solve. So dump SimpleGame and go
right to the task.
The other thing that strikes me is that you have no component reuse.
Both Victory and Loose (which should be Lose or Loss, btw) just display
a single text string, and could be replaced by a generic component that
takes the message as a parameter. And, in fact, for a first version of
this game I would just use the built in dialogs (using #request: rather
than GetNumberComponent and #inform: rather than Victory and Loss).
From a teaching point of view, that might be a good first step - you'd
end up with a single method on a single class as the whole application
- and then you could progress to replacing one of the standard dialogs
with a custom component as you have now, etc.
HTH,
Avi
More information about the Seaside
mailing list