Skip to content

Instantly share code, notes, and snippets.

@omegatakuma
Created May 30, 2012 14:14
Show Gist options
  • Save omegatakuma/2836598 to your computer and use it in GitHub Desktop.
Save omegatakuma/2836598 to your computer and use it in GitHub Desktop.
マスターマインド
#!/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