運行score([1,1,1,1])
應導致1100
,但我得到1000
,我不知道爲什麼。我希望一個紅寶石可以看看它,讓我知道出了什麼問題。我有這樣的代碼,因爲它必須通過除此之外的其他測試。下面的代碼:破碎的迭代器代碼
def score(dice)
score = 0
done_nos = []
dice.each do |die|
unless done_nos.include?(die)
if dice.to_s.scan(/#{die}/).length >= 3
score +=
if die == 1
1000
else
(100 * die.to_i)
end
if die == (5 || 1)
score += ((dice.to_s.scan(/#{die}/).length - 3) *
if die == 5
50
else
100
end
)
end
elsif die == 1
score += (dice.to_s.scan(/#{die}/).length * 100)
elsif die == 5
score += (dice.to_s.scan(/#{die}/).length * 50)
end
done_nos << die
end
end
score
end
在ruby中,|| ||計算爲第一個真值或false。 「(5 || 1)」實際上評估爲「5」,而不是「真」。 – tybro0103
謝謝,不知道=) – zishe