你能幫我重構我爲Ruby Koans#182提出的解決方案嗎?這是你寫一個評分方法來計算貪婪遊戲點數的公文。以下代碼工作並通過所有測試。Ruby Koans 182.重構幫助
但是,它感覺很長並且非紅寶石般。我怎樣才能讓它變得更好?
def score(dice)
rollGreedRoll = Hash.new
rollRollCount = Hash.new
(1..6).each do |roll|
rollGreedRoll[roll] = roll == 1 ? GreedRoll.new(1000, 100) :
GreedRoll.new( 100 * roll, roll == 5 ? 50 : 0)
rollRollCount[roll] = dice.count { |a| a == roll }
end
score =0
rollRollCount.each_pair do |roll, rollCount|
gr = rollGreedRoll[roll]
if rollCount < 3
score += rollCount * gr.individualPoints
else
score += gr.triplePoints + ((rollCount - 3) * gr.individualPoints)
end
end
return score
end
class GreedRoll
attr_accessor :triplePoints
attr_accessor :individualPoints
def initialize(triplePoints, individualPoints)
@triplePoints = triplePoints
@individualPoints = individualPoints
end
end
會更主題在這裏:http://codereview.stackexchange.com/ –
謝謝,我不知道codereview網站。不過,它看起來仍然處於測試階段。 – Alper