James Gray
12/17/2006 4:44:00 PM
Begin forwarded message:
> From: darrenks@ml1.net
> Date: December 16, 2006 9:51:18 AM CST
> To: submission@rubyquiz.com
> Subject: Please Forward: Ruby Quiz Submission
>
> Hi, here is my solution to the chess 960 quiz. Since white and
> black are the same I decided to just print it once and omit the
> whole white/black thing. It is not totally efficient, for position
> #960 it will have to iterate about 20,000 times, however it still
> runs in about a one second in this case.
>
> # Chess960 minimalist version
> # Author: Darren Smith
> # Usage: ruby $0 [1..960] (omit for random position)
>
> i=$*[0]||rand(960)+1
> srand 1558
> p=%w'K R N B B Q N R'
> h={}
> while h.size<i.to_i
> p=p.sort_by{rand}
> $_=p*' '
> h[$_]=1if~/R.*K.*R/&&~/B(..)*B/
> end
> puts"Position ##{i}:",$_
>