[RUBY QUIZ #106], too late?

A

Alex Watt

I've only just had time to finish it. If it's not too late, here's what I've
done:

Bishopt = [
"BB------", # 0
"B--B----", # 1
"B----B--", # 2
"B------B", # 3
"-BB-----", # 4
"--BB----", # 5
"--B--B--", # 6
"--B----B", # 7
"-B--B---", # 8
"---BB---", # 9
"----BB--", # 10
"----B--B", # 11
"-B----B-", # 12
"---B--B-", # 13
"-----BB-", # 14
"------BB" # 15
]
Kingt = [
"QNNRKR", # 0
"NQNRKR", # 16
"NNQRKR", # 32
"NNRQKR", # 48
"NNRQKR", # 64
"NNRKRQ", # 80
"QNRNKR", # 96
"NQRNKR", # 112
"NRQNKR", # 128
"NRNQKR", # 144
"NRNKQR", # 160
"NRNKRQ", # 176
"QNRKNR", # 192
"NQRKNR", # 208
"NRQKNR", # 224
"NRKQNR", # 240
"NRKNQR", # 256
"NRKNRQ", # 272
"QNRKRN", # 288
"NQRKRN", # 304
"NRQKRN", # 320
"NRKQRN", # 336
"NRKRQN", # 352
"NRKRNQ", # 368
"QRNNKR", # 384
"RQNNKR", # 400
"RNQNKR", # 416
"RNNQKR", # 432
"RNNKQR", # 448
"RNNKRQ", # 464
"QRNKNR", # 480
"RQNKNR", # 496
"RNQKNR", # 512
"RNKQNR", # 528
"RNKNQR", # 544
"RNKNRQ", # 560
"QRNKRN", # 576
"RQNKRN", # 592
"RNQKRN", # 608
"RNKQRN", # 624
"RNKRQN", # 640
"RNKRNQ", # 656
"QRKNNR", # 672
"RQKNNR", # 688
"RKQNNR", # 704
"RKNQNR", # 720
"RKNNQR", # 736
"RKNNRQ", # 752
"QRKNRN", # 768
"RQKNRN", # 784
"RKQNRN", # 800
"RKNQRN", # 816
"RKNRQN", # 832
"RKNRNQ", # 848
"QRKRNN", # 864
"RQKRNN", # 880
"RKQRNN", # 896
"RKRQNN", # 912
"RKRNQN", # 928
"RKRNNQ", # 944
"QNNRKR", # 960
]

pieces = %w(K Q R R B B N N)
row = [*("A".."H")]

loop do
pieces = pieces.sort_by { rand }
break if pieces.to_s =~ /.*R.*K.*R.*/ and pieces.to_s =~ /.*B(..)*B.*/
end

bCombo = pieces.to_s.gsub(/[KQRN]/,'-')
bishopComboNo = Bishopt.index(bCombo)

kCombo = pieces.to_s.gsub(/B/,'')
kingComboNo = (Kingt.index(kCombo) == 0) ? 0 : Kingt.index(kCombo) +
(15*Kingt.index(kCombo))

puts "Starting position: #{kingComboNo + bishopComboNo}"
puts
puts "Black Pieces"
puts row.map { |square| square + "8" }.join(" ")
puts pieces.join(" ")
4.times { puts }
puts pieces.join(" ")
puts row.map { |square| square + "1" }.join(" ")
puts "White Pieces"

_________________________________________________________________
MSN Hotmail is evolving – check out the new Windows Live Mail
http://ideas.live.com
 
J

James Edward Gray II

I've only just had time to finish it. If it's not too late, here's
what I've done:

It's never too late. Thanks for sharing!

James Edward Gray II
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,764
Messages
2,569,567
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top