From: Logesh Pillay Date: 2006-06-16T03:34:07+09:00 Subject: Newbie program I discovered Ruby this week. I was amazed at how easy it was to program in it without a book or any real manual. I've written the following program. It looks too much like the python original to be good idiomatic ruby. I'd appreciate suggestions how to improve it. Thanks. Logesh #returns the ways one can place n queens on a #chessboard of size n*n so that no queen is attacking another #Ruby 1.8.3; 15 June 2006 def nqueens $n = 8 $board = [nil] * ($n+1) def choose(k) if k > $n print $board, "\n" else for i in 1..$n $board[k] = i choose(k + 1) if k == 1 or stillgood(k) end end end def stillgood(k) for i in 1...k return false if ($board[k] == $board[i]) or (k-i == ($board[k] - $board[i]).abs) end return true end end nqueens.choose(1)