diff --git a/pkgs/games/tally-maze/maze.rkt b/pkgs/games/tally-maze/maze.rkt index e9f0045979..20d4067bea 100644 --- a/pkgs/games/tally-maze/maze.rkt +++ b/pkgs/games/tally-maze/maze.rkt @@ -361,6 +361,73 @@ (cons '(2 . 1) (set '(2 . 0) '(2 . 2))) (cons '(2 . 2) (set '(2 . 1) '(1 . 2))))))) +(module+ test + (check-equal? (for/list ([i (in-range 1 10)]) + (for/list ([j (in-range 1 10)]) + (spec-k (maze/s i j)))) + '((1 1 1 1 1 1 1 1 1) + (1 4 14 32 60 100 154 224 312) + (1 14 192 1592 9088 40200 144640 442024 1187712) + (1 32 1592 48576 966432 14277056 162024480 1483461856 11380684512) + (1 60 9088 966432 64276480 3107936000 108447726080 2888781507968 63634822939136) + (1 100 40200 14277056 3107936000 505206939648 57343330411904 4517833584448000 265075058064153216) + (1 154 144640 162024480 108447726080 57343330411904 22277369393520640 5823531873245840896 1048876337051644747776) + (1 224 442024 1483461856 2888781507968 4517833584448000 5823531873245840896 5198113431992927961088 3121738536955876740462592) + (1 312 1187712 11380684512 63634822939136 265075058064153216 1048876337051644747776 3121738536955876740462592 6287843749463133375691948032))) + (check-equal? + (for/list ([i (in-range 50)]) (decode-maze 6 6 i)) + '(((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 2 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 3 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 4 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 0 1) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 1 1) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 2 1) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 3 1) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 4 1) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 0 2) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 1 2) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 2 2) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 3 2) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 4 2) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 0 3) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 1 3) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 2 3) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 3 3) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 4 3) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 0 4) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 1 4) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 2 4) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 3 4) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 4 4) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 2 0) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 3 0) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 4 0) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 0 1) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 1 1) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 2 1) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 3 1) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 4 1) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 0 2) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 1 2) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 2 2) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 3 2) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 4 2) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 0 3) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 1 3) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 2 3) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 3 3) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 4 3) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 0 4) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 1 4) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 2 4) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 3 4) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f))))) + ((1 1 l) (#f 0 4 4) #f #f #f ((1 1 l) (#f 0 1 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f ((1 1 l) (#f 0 0 0) #f #f #f #f)))))))) + + (define (show-mazes) ;(define maze-w 34) (define maze-h 44)