Universe Taking Turns
-
Labeled worlds. Give each world a unique identity (a string name or a number). Show the world’s identity in the upper left corner. When you hit a key in a world, every world also shows the identity of the world you clicked in.
-
Colored worlds. The world you hit a key in turns green. All other worlds turn yellow. Still show each world’s identity.
-
Active stamping. Add on to your colored worlds program. Hit a key to activate a world. Only one world is active at a time. When you click in the active world, it shows a solid circle. Inactive worlds show an outline circle. (Basic: only one circle at a time, no control over where it appears, disappears when de-/activating. Advanced: show all circles, center each at the location of the click.) Video: basic, advanced
-
Spinning. Each world has a separate image. Only one image spins at a time. When you hit a key in a window, that world’s image starts spinning and the other window(s) stop.
-
Chase. Each world has one image that it controls with the mouse. Hitting a key makes the mouse inactive for about one second. (Use a tick handler to reactivate.) I used a colored bar to indicate whether the window is active or not. Video.
posn
as a message for technical reasons. Reasonable replacements: (a) use (list x y)
for the message; (b) use (define-struct msg (x y) #:prefab)
; or (c) enhanced posn-util.