We Recommend

Beginning Ruby: From Novice to Professional Beginning Ruby: From Novice to Professional
Beginning Ruby is a thoroughly contemporary guide for every type of reader wanting to learn Ruby, from novice programmers to web developers to Ruby newcomers. It starts by explaining the principles behind object-oriented programming and within a few chapters builds toward creating a genuine Ruby application.


Posted By

gdonald on 09/27/06


Tagged

sudoku solver


Versions (?)


Who likes this?

4 people have marked this snippet as a favorite

mzim
dapan
zemariamm
skammer


Ruby sudoku solver


Published in: Ruby 


  1. #!/usr/bin/ruby
  2.  
  3. 10.times do
  4. s = 0
  5. 1.upto(9) do |x|
  6. 1.upto(9) do |y|
  7. 1.upto(9) do |z|
  8. if x + y + z == 15 && x != y && x != z && y != z
  9. 1.upto(9) do |a|
  10. 1.upto(9) do |b|
  11. 1.upto(9) do |c|
  12. if( ( a + b + c == 15) && ( ( a != b ) && ( a != c ) && ( b != c ) ) )
  13. 1.upto(9) do |i|
  14. 1.upto(9) do |o|
  15. 1.upto(9) do |p|
  16. if( ( i + o + p == 15 ) && ( ( i != o ) && ( i != p ) && ( o != p ) ) )
  17. if( ( x + a + i == 15 ) && ( ( x != a ) && ( x != i ) && ( a != i ) ) )
  18. if( ( y + b + o == 15 ) && ( ( y != b ) && ( y != o ) && ( b != o ) ) )
  19. if( ( z + c + p == 15 ) && ( ( z != c ) && ( z != p ) && ( c != p ) ) )
  20. if( ( x != b ) && ( x != c ) && ( x != o ) && ( x != p ) )
  21. if( ( y != a ) && ( y != i ) && ( y != c ) && ( y != p ) )
  22. if( ( z != b ) && ( z != a ) && ( z != o ) && ( z != i ) )
  23. s += 1
  24. $stdout.print "Solution ##{s}:\n"
  25. $stdout.print "#{x} #{y} #{z}\n"
  26. $stdout.print "#{a} #{b} #{c}\n"
  27. $stdout.print "#{i} #{o} #{p}\n\n"
  28. end
  29. end
  30. end
  31. end
  32. end
  33. end
  34. end
  35. end
  36. end
  37. end
  38. end
  39. end
  40. end
  41. end
  42. end
  43. end
  44. end
  45. end
  46. end

Report this snippet 

You need to login to post a comment.