fixed an (apparently VERY old) problem with lights out and the built-in boards
please merge to release branch
(cherry picked from commit 4f236386a9
)
This commit is contained in:
parent
b845c05e7d
commit
b7ccf8d91e
|
@ -51,11 +51,14 @@
|
|||
6)]
|
||||
[button-panel (make-object horizontal-panel% dialog)]
|
||||
[cancel? #t]
|
||||
[ok (make-object button% "OK"
|
||||
button-panel
|
||||
[ok (new button%
|
||||
[label "OK"]
|
||||
[parent button-panel]
|
||||
[style '(border)]
|
||||
[callback
|
||||
(lambda x
|
||||
(set! cancel? #f)
|
||||
(send dialog show #f)))]
|
||||
(send dialog show #f))])]
|
||||
[cancel (make-object button% "Cancel"
|
||||
button-panel
|
||||
(lambda x
|
||||
|
@ -76,9 +79,12 @@
|
|||
(send random-slider get-value)
|
||||
(lambda (x) (make-vector (send random-slider get-value) 'o)))]
|
||||
[(prebuilt)
|
||||
(board-board (list-ref boards (send prebuilt get-selection)))]))))
|
||||
(to-vectors (board-board (list-ref boards (send prebuilt get-selection))))]))))
|
||||
(new-board)))
|
||||
|
||||
(define (to-vectors lsts)
|
||||
(apply vector (map (λ (x) (apply vector x)) lsts)))
|
||||
|
||||
'(define (build-vector n f)
|
||||
(list->vector
|
||||
(let loop ([n n])
|
||||
|
|
|
@ -1,64 +1,69 @@
|
|||
(module boards mzscheme
|
||||
(provide boards
|
||||
(struct board (name board)))
|
||||
#lang racket/base
|
||||
(require racket/vector)
|
||||
|
||||
(define-struct board (name board))
|
||||
(provide boards
|
||||
(struct-out board))
|
||||
|
||||
(define boards
|
||||
(define-struct board (name board))
|
||||
|
||||
(define (build-board name vec)
|
||||
(make-board name (vector-map vector-copy vec)))
|
||||
|
||||
(define boards
|
||||
(list
|
||||
(make-board
|
||||
"1"
|
||||
#(#(o o o o o)
|
||||
#(o o o o o)
|
||||
#(x o x o x)
|
||||
#(o o o o o)
|
||||
#(o o o o o)))
|
||||
'((o o o o o)
|
||||
(o o o o o)
|
||||
(x o x o x)
|
||||
(o o o o o)
|
||||
(o o o o o)))
|
||||
(make-board
|
||||
"2"
|
||||
#(#(x o x o x)
|
||||
#(x o x o x)
|
||||
#(o o o o o)
|
||||
#(x o x o x)
|
||||
#(x o x o x)))
|
||||
'((x o x o x)
|
||||
(x o x o x)
|
||||
(o o o o o)
|
||||
(x o x o x)
|
||||
(x o x o x)))
|
||||
(make-board
|
||||
"3"
|
||||
#(#(o x o x o)
|
||||
#(x x o x x)
|
||||
#(x x o x x)
|
||||
#(x x o x x)
|
||||
#(o x o x o)))
|
||||
'((o x o x o)
|
||||
(x x o x x)
|
||||
(x x o x x)
|
||||
(x x o x x)
|
||||
(o x o x o)))
|
||||
(make-board
|
||||
"4"
|
||||
#(#(o o o o o)
|
||||
#(x x o x x)
|
||||
#(o o o o o)
|
||||
#(x o o o x)
|
||||
#(x x o x x)))
|
||||
'((o o o o o)
|
||||
(x x o x x)
|
||||
(o o o o o)
|
||||
(x o o o x)
|
||||
(x x o x x)))
|
||||
(make-board
|
||||
"5"
|
||||
#(#(x x x x o)
|
||||
#(x x x o x)
|
||||
#(x x x o x)
|
||||
#(o o o x x)
|
||||
#(x x o x x)))
|
||||
'((x x x x o)
|
||||
(x x x o x)
|
||||
(x x x o x)
|
||||
(o o o x x)
|
||||
(x x o x x)))
|
||||
(make-board
|
||||
"6"
|
||||
#(#(o o o o o)
|
||||
#(o o o o o)
|
||||
#(x o x o x)
|
||||
#(x o x o x)
|
||||
#(o x x x o)))
|
||||
'((o o o o o)
|
||||
(o o o o o)
|
||||
(x o x o x)
|
||||
(x o x o x)
|
||||
(o x x x o)))
|
||||
(make-board
|
||||
"7"
|
||||
#(#(x x x x o)
|
||||
#(x o o o x)
|
||||
#(x o o o x)
|
||||
#(x o o o x)
|
||||
#(x x x x o)))
|
||||
'((x x x x o)
|
||||
(x o o o x)
|
||||
(x o o o x)
|
||||
(x o o o x)
|
||||
(x x x x o)))
|
||||
(make-board
|
||||
"Diagonal"
|
||||
#(#(o o o o x)
|
||||
#(o o o x o)
|
||||
#(o o x o o)
|
||||
#(o x o o o)
|
||||
#(x o o o o))))))
|
||||
'((o o o o x)
|
||||
(o o o x o)
|
||||
(o o x o o)
|
||||
(o x o o o)
|
||||
(x o o o o)))))
|
||||
|
|
Loading…
Reference in New Issue
Block a user