2014-10-11 79 views
-1
def roll_die 
    rand(1..6) 
end 

if roll_die == 1 
    puts "ruby" 
elsif roll_die == 2 
    puts "uW" 
elsif roll_die == 3 
    puts "eBay" 
elsif roll_die == 4 
    puts "meditate" 
elsif roll_die == 5 
    puts "musiClean" 
else 
    puts "medicate" 
end 

如何減少我的代碼冗餘?如何減少冗餘太多elsif子句? [紅寶石]

+2

你的邏輯是有缺陷的,你搖動骰子多次。 – August 2014-10-11 01:33:00

+1

這個問題似乎是脫離主題,因爲它是關於代碼重構和審查,而應該在[codereview.se]上。 – 2014-10-11 23:19:44

回答

8

如何使用Array#sample

['ruby', 'uW', 'eBay', 'meditate', 'musiClean', 'medicate'].sample 
4

創建一個數組,並通過索引訪問它。

rolls = %w(ruby uW eBay meditat musiClean medicate) 

puts rolls[roll_die - 1]