Created
May 30, 2012 14:14
-
-
Save omegatakuma/2836598 to your computer and use it in GitHub Desktop.
マスターマインド
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/local/bin/gosh | |
(define (cows data ans) | |
(let loop ((ans ans)(count 0)) | |
(cond ((null? ans)count) | |
((member (car ans) data) | |
(loop (cdr ans) (+ count 1))) | |
(else (loop (cdr ans) count))))) | |
(define (bulls data ans) | |
(let loop ((data data)(ans ans)(count 0)) | |
(cond | |
((null? data)count) | |
((eq? (car data) (car ans)) | |
(loop (cdr data) (cdr ans) (+ count 1))) | |
(else (loop (cdr data) (cdr ans) count))))) | |
(define (solve data) | |
(let loop () | |
(display "input> ")(flush) | |
(let1 ans (read) | |
(if (eq? ans 'ans!) | |
(print "Answer is " data ) | |
(let ((cows-count (cows data ans)) | |
(bulls-count (bulls data ans))) | |
(print ans ": cows " (- bulls-count cows-count) " : bulls " bulls-count) | |
(if (eqv? bulls-count 4)(print "Wonderfuuuuuuul!!!!!!") | |
(loop))))))) | |
(define (main args) | |
(display "answer> ")(flush) | |
(let1 data (read) | |
(solve data)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment