File tree 1 file changed +45
-0
lines changed
1 file changed +45
-0
lines changed Original file line number Diff line number Diff line change
1
+ #lang racket
2
+
3
+ (module drop-on-message racket
4
+ (require 2htdp/universe 2htdp/image)
5
+
6
+ (define (u)
7
+ (universe 0
8
+ (on-new (lambda (u w) (make-bundle (+ u 1 ) '() '() )))
9
+ (on-msg (lambda (u w m) (make-bundle (- u 1 ) '() (list w))))
10
+ (state #t )))
11
+
12
+ (define (w n)
13
+ (big-bang 3
14
+ [to-draw (lambda (w) (overlay (text (number->string w) 22 'black ) (circle 100 'solid 'red )))]
15
+ [on-tick (lambda (w) (if (<= w 1 ) (make-package 0 n) (- w 1 )))]
16
+ [register LOCALHOST]
17
+ [name n]))
18
+
19
+ (launch-many-worlds (u) (w "one " ) (w "two " )))
20
+
21
+ (require (submod ". " drop-on-message))
22
+
23
+ (module drop-bad racket
24
+ (require 2htdp/universe 2htdp/image)
25
+
26
+ (define *world* #false )
27
+
28
+ (define (u)
29
+ (universe '()
30
+ (on-new (lambda (u w) (make-bundle (cons w u) '() '() )))
31
+ (on-msg (lambda (u w m)
32
+ ;; set *world* to the first world that comes around, reuse
33
+ (unless *world* (set! *world* w))
34
+ (make-bundle u '() (list *world*))))))
35
+
36
+ (define (w n)
37
+ (big-bang 3
38
+ [to-draw (lambda (w) (overlay (text (number->string w) 22 'black ) (circle 100 'solid 'red )))]
39
+ [on-tick (lambda (w) (if (= w 1 ) (make-package 0 n) (- w 1 )))]
40
+ [register LOCALHOST]
41
+ [name n]))
42
+
43
+ (launch-many-worlds (u) (w "one " ) (w "two " ) (w "three " )))
44
+
45
+ ; (require (submod "." drop-bad))
You can’t perform that action at this time.
0 commit comments