所要時間10分で、Sendagaya.rbのメンバーそれぞれ書きました。
書いた後、「あれ、どのメンバーのコードを使ってくじをするのか決めるためのくじも必要だな」と思ったのですが、それはまた別の機会に書きます。
私のコード
class Amida def initialize(members) @members = members.split(' ') end def result() p "参加者:#{members}" p "参加人数:#{num}" p "当選者:#{winner}" end def members @members end def num members.size end def winner @winner ||= members[rand(num)] end end Amida.new('Asan Bsan Csan').result
ポイントは、 #winner
が ||=
で書かれていることで、インスタンス変数に格納されるので、 winner を呼び出す度に結果が変わりません。