最終更新 1733956154

A small box drawing program, driven by a pen plotter DSL.

修正履歴 522a3df9dee711cf9e0b6e58c2ba3b6a55ce748d

Drawing A Box Raw Playground
1|u | up
2|d | down
3|l | left
4|r | right
5|f | forward
6|tl | turn left
7|tr | turn right
8|uu | u,u
9|dd | d,d
10|ll | l,l
11|rr | r,r
12|ff | f,f
13|tll | tl,tl
14|trr | tr,tr
15|uuu | uu,u
16|ddd | dd,d
17|lll | ll,l
18|rrr | rr,r
19|fff | ff,f
20|tlll | tll,tl
21|trrr | trr,tr
22|uuuu | uu,uu
23|dddd | dd,dd
24|llll | ll,ll
25|rrrr | rr,rr
26|ffff | ff,ff
27|tllll | tll,tll
28|trrrr | trr,trr
29|up | @pen-up
30|down | @pen-down
31|left | @pen-left
32|right | @pen-right
33|forward | @pen-forward
34|turn left | @pen-turn-left
35|turn right| @pen-turn-right
36|pen down | @pen-start
37|pen up | @pen-stop
38
39|@pen-start| @pen-draw
40|@pen-stop, @pen-draw| @pen-stop
41|@pen-stop|
42
43||@pen-direction-right
44|@pen-forward, @pen-direction-up | @pen-up, @pen-direction-up
45|@pen-forward, @pen-direction-down | @pen-down, @pen-direction-down
46|@pen-forward, @pen-direction-left | @pen-left, @pen-direction-left
47|@pen-forward, @pen-direction-right| @pen-right, @pen-direction-right
48
49|@pen-turn-left, @pen-direction-up | @pen-direction-left
50|@pen-turn-left, @pen-direction-down | @pen-direction-right
51|@pen-turn-left, @pen-direction-left | @pen-direction-down
52|@pen-turn-left, @pen-direction-right| @pen-direction-up
53
54|@pen-turn-right, @pen-direction-up | @pen-direction-right
55|@pen-turn-right, @pen-direction-down | @pen-direction-left
56|@pen-turn-right, @pen-direction-left | @pen-direction-up
57|@pen-turn-right, @pen-direction-right| @pen-direction-down
58
59|@pen-lift, @pen-draw| @pen-lift
60|@pen-lift|
61
62|@pixel-x = @pen-x:max| @pixel-x = @pen-x:4294967295
63|@pixel-y = @pen-y:max| @pixel-y = @pen-y:4294967295
64|@pen-x <- @pen-x-temp:max| @pen-x <- @pen-x-temp:4294967295
65|@pen-y <- @pen-y-temp:max| @pen-y <- @pen-y-temp:4294967295
66
67|@pixel-x = @pen-x, @pen-x | @pen-x-temp,
68 @pixel-x,
69 @pixel-x = @pen-x
70|@pixel-x = @pen-x | @pen-x <- @pen-x-temp
71|@pen-x <- @pen-x-temp, @pen-x-temp | @pen-x, @pen-x <- @pen-x-temp
72|@pen-x <- @pen-x-temp |
73
74|@pixel-y = @pen-y, @pen-y | @pen-y-temp,
75 @pixel-y,
76 @pixel-y = @pen-y
77|@pixel-y = @pen-y | @pen-y <- @pen-y-temp
78|@pen-y <- @pen-y-temp, @pen-y-temp | @pen-y, @pen-y <- @pen-y-temp
79|@pen-y <- @pen-y-temp |
80
81|@trigger-set-pixel| @set-pixel
82
83|@pen-x++| @pen-x
84|@pen-x--, @pen-x|
85|@pen-x--|
86
87|@pen-y++| @pen-y
88|@pen-y--, @pen-y|
89|@pen-y--|
90
91|@pen-left, @pen-draw|
92 @pixel-x = @pen-x:max,
93 @pixel-y = @pen-y:max,
94 @pen-draw,
95 @trigger-set-pixel,
96 @pen-x--
97
98|@pen-left|
99 @pen-x--
100
101|@pen-right, @pen-draw|
102 @pixel-x = @pen-x:max,
103 @pixel-y = @pen-y:max,
104 @pen-draw,
105 @trigger-set-pixel,
106 @pen-x++
107
108|@pen-right|
109 @pen-x++
110
111|@pen-up, @pen-draw|
112 @pixel-x = @pen-x:max,
113 @pixel-y = @pen-y:max,
114 @pen-draw,
115 @trigger-set-pixel,
116 @pen-y--
117
118|@pen-up|
119 @pen-y--
120
121|@pen-down, @pen-draw|
122 @pixel-x = @pen-x:max,
123 @pixel-y = @pen-y:max,
124 @pen-draw,
125 @trigger-set-pixel,
126 @pen-y++
127
128|@pen-down|
129 @pen-y++
130
131
132
133
134|| start
135|start|
136 pen up,
137 rrrr,rrrr,rrrr,rrrr,
138 dddd,dddd,dddd,dddd,
139 main
140|main|
141 draw a frame,
142 display
143|draw a frame|1
144|1|2, pen down, rrrr, rrrr, rrrr, rrrr
145|2|3, dddd, dddd, dddd, dddd
146|3|4, llll, llll, llll, llll
147|4| uuuu, uuuu, uuuu, uuuu
148|display| @display