1 ;; The first three lines of this file were inserted by DrScheme. They record metadata
2 ;; about the language level of this file in a form that our tools can easily process.
3 #reader(lib "htdp-advanced-reader.ss" "lang")((modname |32.3|) (read-case-sensitive #t) (teachpacks ((lib "draw.ss" "teachpack" "htdp") (lib "arrow.ss" "teachpack" "htdp") (lib "gui.ss" "teachpack" "htdp"))) (htdp-settings #(#t constructor repeating-decimal #t #t none #f ((lib "draw.ss" "teachpack" "htdp") (lib "arrow.ss" "teachpack" "htdp") (lib "gui.ss" "teachpack" "htdp")))))
5 (define trueboard (list (vector (vector true)
7 (vector true true true)
8 (vector true true true true)
9 (vector true true true true true)
10 (vector true true true true true true)
11 (vector true true false true true true true))
14 (vector true true true)
15 (vector true true true true)
16 (vector true true true true false)
17 (vector true true true true true true)
18 (vector true true true true true true true))
21 (vector true true true)
22 (vector true true true true)
23 (vector false true true true true)
24 (vector true true true true true true)
25 (vector true true true true true true true))
28 (vector true true false)
29 (vector true true true true)
30 (vector true true true true true)
31 (vector true true true true true true)
32 (vector true true true true true true true))
35 (vector true true true)
36 (vector true true true true)
37 (vector true true true true true)
38 (vector true true true true true true)
39 (vector true true true true false true true))
42 (vector false true true)
43 (vector true true true true)
44 (vector true true true true true)
45 (vector true true true true true true)
46 (vector true true true true true true true))
49 (vector false true true)
50 (vector true false false true)
51 (vector true false true false false)
52 (vector true false true true true true)
53 (vector false false true false false false true))
56 (vector false true true)
57 (vector true false false true)
58 (vector true false true true false)
59 (vector true true true false true true)
60 (vector false false true false false false true))))
62 (define falseboard (list (vector (vector true)
64 (vector true true true)
65 (vector true true true true)
66 (vector true true false true true)
67 (vector true true true true true true)
68 (vector true true true true true true true))
71 (vector true true true)
72 (vector true true true true)
73 (vector true true false true true)
74 (vector true true true true true true)
75 (vector true true false true true true true))
78 (vector true true true)
79 (vector true true true true)
80 (vector true false true true true)
81 (vector true true true true true true)
82 (vector true true true true true true true))
85 (vector true true true)
86 (vector true true true true)
87 (vector true true true true true)
88 (vector true true true true true true)
89 (vector true false true true true true true))
92 (vector true true true)
93 (vector true true true true)
94 (vector true true true true true)
95 (vector true false true true true true)
96 (vector true true true true true true true))
99 (vector false true true)
100 (vector true false false true)
101 (vector true false true true true)
102 (vector true true true true true true)
103 (vector true true true true true true true))
104 (vector (vector true)
106 (vector false true true)
107 (vector true false false true)
108 (vector true false true true true)
109 (vector true false true true true true)
110 (vector false false true true true true true))
111 (vector (vector true)
113 (vector false true true)
114 (vector true false false true)
115 (vector true false true false false)
116 (vector true false false true true true)
117 (vector false false true true true true true))
118 (vector (vector true)
120 (vector false true true)
121 (vector true false false true)
122 (vector true false true false false)
123 (vector true false false false true true)
124 (vector false false true false false false true))
125 (vector (vector true)
127 (vector false true true)
128 (vector true false false true)
129 (vector true false true false false)
130 (vector true true false false true true)
131 (vector false false true false false false true))))
134 (define trueboard2 (list (vector (vector true)
136 (vector true true true)
137 (vector true true true true)
138 (vector true true true true true)
139 (vector true true true true true true)
140 (vector true true false true false true true))
141 (vector (vector true)
143 (vector true true true)
144 (vector true true true true)
145 (vector true true true true false)
146 (vector true true true true true true)
147 (vector true true true true true true true))))
149 (define trueboard3 (list (vector (vector true)
151 (vector false true true)
152 (vector true true true true)
153 (vector true true true true true)
154 (vector true true true true true true)
155 (vector true true false true false true true))
156 (vector (vector true)
158 (vector true true false)
159 (vector true true true true)
160 (vector true true true true false)
161 (vector true true true true true true)
162 (vector true true true true true true true))))
163 (define trueboard4 (list (vector (vector true)
165 (vector false true true)
166 (vector true true true true)
167 (vector true true true true true)
168 (vector true true true true true true)
169 (vector true true false true false true true))
170 (vector (vector true)
172 (vector true true false)
173 (vector true true true true)
174 (vector false true true true false)
175 (vector true true true true true true)
176 (vector true true true true true true true))))
178 (define falseboard2 (list (vector (vector true)
180 (vector true true true)
181 (vector true true true true)
182 (vector true true false true true)
183 (vector true true true true true true)
184 (vector true true true true true true true))
185 (vector (vector true)
187 (vector true true true)
188 (vector true true true true)
189 (vector true true false true true)
190 (vector true true true true true true)
191 (vector true true false true true true false))
192 (vector (vector true)
194 (vector true true true)
195 (vector true true true true)
196 (vector true false true true true)
197 (vector true true true true true true)
198 (vector true true true true true false true))
199 (vector (vector true)
201 (vector true true true)
202 (vector true true true true)
203 (vector true true true true true)
204 (vector true true true true false true)
205 (vector true false true true true true true))))
206 (define falseboard3 (list (vector (vector true)
208 (vector true true true)
209 (vector true true true true)
210 (vector true true false true true)
211 (vector true true true true true true)
212 (vector true true true true true true true))
213 (vector (vector true)
215 (vector true true true)
216 (vector true true true true)
217 (vector true true false true true)
218 (vector true true true true true true)
219 (vector true false false true true true false))
220 (vector (vector true)
222 (vector true true true)
223 (vector true true true true)
224 (vector false false true true true)
225 (vector false true true true true true)
226 (vector true true true true true false true))
227 (vector (vector true)
229 (vector true true true)
230 (vector true true true true)
231 (vector false true false true true)
232 (vector false true false true false true)
233 (vector true false false true true true true))))
234 (andmap (lambda (b) (enabled? (make-posn 3 5) b)) trueboard)
235 (andmap (lambda (b) (not (enabled? (make-posn 3 5) b))) falseboard)
236 (andmap (lambda (b) (enabled? (make-posn 7 7) b)) trueboard2)
237 (andmap (lambda (b) (enabled? (make-posn 1 1) b)) trueboard3)
238 (andmap (lambda (b) (enabled? (make-posn 1 7) b)) trueboard4)
239 (andmap (lambda (b) (not (enabled? (make-posn 7 7) b))) falseboard2)
240 (andmap (lambda (b) (not (enabled? (make-posn 1 7) b))) falseboard3)
244 (equal? (build-board 5 (lambda (x y) true))
248 (vector true true true)
249 (vector true true true true)
250 (vector true true true true true)))
251 (equal? (build-board 7 (lambda (x y)
253 [(<= (+ x y) 4) true]
258 (vector true false false)
259 (vector false false false false)
260 (vector false false false false false)
261 (vector false false false false false false)
262 (vector false false false false false false false)))
264 (equal? (build-board 7 (lambda (x y)
266 [(<= (- y x) 2) true]
271 (vector true true true)
272 (vector false true true true)
273 (vector false false true true true)
274 (vector false false false true true true)
275 (vector false false false false true true true)))
278 (define jumpboard (vector (vector true)
280 (vector false true false)
281 (vector true true true true)
282 (vector false true true true false)
283 (vector true true true true true true)
284 (vector true true false true false true true)))
289 (enabled-pegs (vector (vector true)
291 (vector false true true)
292 (vector true false false true)
293 (vector true false true false false)
294 (vector true true false false true true)
295 (vector false false true false false false true)))
308 (define testboard2 (vector (vector true)
310 (vector false true true)
311 (vector true false false true)
312 (vector true false true false false)
313 (vector true true false false true true)
314 (vector false false true false false false true)))
316 (equal? (next-board testboard2 (make-posn 1 1))
322 (vector true true true)
323 (vector true false false true)
324 (vector true false true false false)
325 (vector true true false false true true)
326 (vector false false true false false false true))
327 (list (make-posn 1 1) (make-posn 1 3)))))
328 (equal? (next-board testboard2 (make-posn 1 2))
334 (vector false false true)
335 (vector true false true true)
336 (vector true false true false false)
337 (vector true true false false true true)
338 (vector false false true false false false true))
339 (list (make-posn 1 2) (make-posn 3 4)))))
340 (equal? (next-board testboard2 (make-posn 2 2))
346 (vector false false true)
347 (vector true true false true)
348 (vector true false true false false)
349 (vector true true false false true true)
350 (vector false false true false false false true))
351 (list (make-posn 2 2) (make-posn 2 4)))))
352 (equal? (next-board testboard2 (make-posn 3 1)) empty)
354 (next-board testboard2 (make-posn 3 3))
360 (vector true false false)
361 (vector true false false true)
362 (vector true false true false false)
363 (vector true true false false true true)
364 (vector false false true false false false true))
365 (list (make-posn 3 3) (make-posn 1 3)))
370 (vector false true false)
371 (vector true false false false)
372 (vector true false true false true)
373 (vector true true false false true true)
374 (vector false false true false false false true))
375 (list (make-posn 3 3) (make-posn 5 5)))))
377 (next-board INITIAL-BOARD (make-posn 1 3))