sqrmax at cvtci.com.ar sqrmax at cvtci.com.ar
Tue Feb 16 18:15:46 UTC 1999


The MorphicWrappers have an commented step method that makes them talk when 
uncommented by adding balloons to themselves. I worked on it this weekend 
and got a conversation scheduler that makes jokes, puns, and a lot of funny 
stuff. I ran into some difficulties to get what I wanted.

1. No multiple balloons.
Why is this? I added another method with the balloon removal sentence 
removed so that it won't remove the balloons, so that multiple conversations can 
go on at the same time without fighting for the only balloon available. I 
named the method addBalloon:... instead of showBalloon:...

2. No colorful balloons.
?... I modified my method to allow addBalloon:...color:. And then I also 
just sent a translucent color. Multiple multicolor translucent balloons look 
great! Each conversation has its own color so you can follow them. I found a 
nice way to generate random translucent colors for balloons: Color random 
lighter lighter alpha: 0.83.

3. Balloon problems with vertices.
Ask a morph with negative position like -positive at -positive to add a 
balloon to itself, vertices for it will be supplied empty and it will display an 
error message. Reason... ???... I haven't looked at this one too much yet.

4. Random doesn't behave as expected.
I just left the babbler running. When it wants to build a conversation, it 
gets suitable morphs, chooses one atRandom, and then sorts the rest by 
distance to the first, grabs the first 5 atRandom and those will talk together 
(hint: no shouting all over the world). Then, the conversation is built with its 
members and a list of events taken from text lists again atRandom. The color 
of the conversation will also be Color random.

Then you'll see waves of the same color, waves of the same text, waves of 
the same amount of morphs talking and waves of the same morphs talking. ???...

I also noticed this with Color random doing something else. I built a 
function plotter and at first I chose the color of each function by Color random 
as they were added. I noticed pairs and triplets of very similar colors chosen 

5. 0.0 raisedTo: 0.75 = -0.0.
When this is evaluated, 0.0 ln = -Infinity, then it's multiplied by aNumber 
and still is -Infinity, and then it's sent exp and the result is -0.0. Why 
-0.0 if e^anything > 0? And -0.0 can't be truncated so problems arise from 
this... would it be ok in raiseTo: to add something like

self = 0.0 ifTrue: [^0.0]

after the line dealing with 0.0 ^ 0.0? Or should the ln+*+exp thing work?

I'm using Squeak 2.3 with all updates available.


More information about the Squeak-dev mailing list