44 lines
892 B
Racket
44 lines
892 B
Racket
(module sig mzscheme
|
|
(require mzlib/unitsig)
|
|
|
|
(provide config^
|
|
heuristics^ explore^
|
|
model^ restart^)
|
|
|
|
(define-signature config^
|
|
(BOARD-SIZE))
|
|
|
|
(define-signature heuristics^
|
|
(make-3x3-rate-board
|
|
make-3x3-canned-moves
|
|
make-3x3-no-canned-moves
|
|
make-4x4-rate-board
|
|
make-4x4-canned-moves))
|
|
|
|
(define-signature explore^
|
|
(make-search
|
|
apply-play ; a play is (list piece from-i from-j to-i to-j)
|
|
(struct plan (size from-i from-j to-i to-j xform))))
|
|
|
|
(define-signature model^
|
|
(move
|
|
winner? 3-in-a-row?
|
|
red-pieces yellow-pieces
|
|
piece-color piece-size
|
|
empty-board
|
|
board-ref
|
|
fold-board
|
|
fold-rowcol
|
|
other
|
|
available-off-board
|
|
compact-board
|
|
make-canonicalize
|
|
apply-xform unapply-xform
|
|
board->string))
|
|
|
|
(define-signature restart^
|
|
(new-game
|
|
show-gobblet-help)))
|
|
|
|
|