Ruby
FizzBuzz

RubyでFizzBuzz改

Rubyに慣れるためFizzBuzzやってみた。

初心者も上級者も。FizzBuzz問題について考えてみよう

2人以上のプレイヤーが1から順番に数字を発言していく
3で割り切れるときは「Fizz」を発言
5で割り切れるときは「Buzz」を発言
両方で割り切れるときは「FizzBuzz」を発言

繰り返しの回数と発言者を変数にした。

FizzBuzz.rb
def sayFizzBuzz(endNum,*talker)
  i = 0
  talkerNum = talker.length

  if endNum < talkerNum then
    puts '繰り替えし回数は発言者数より多く設定してください。'
  end
  talker.cycle(endNum/talkerNum){|talker| print "#{talker}  says  "
    i += 1
    if i % 3 == 0 && i % 5 == 0 then
      p 'FizzBuzz'
    elsif i % 3 == 0 then
      p  'Fizz'
    elsif i % 5 == 0 then
      p 'Buzz'
    elsif
      p i
    end
  }
end

sayFizzBuzz(30,'taisuke','yasuda','sho')

taisuke  says  1
yasuda  says  2
sho  says  "Fizz"
taisuke  says  4
yasuda  says  "Buzz"
sho  says  "Fizz"
taisuke  says  7
yasuda  says  8
sho  says  "Fizz"
taisuke  says  "Buzz"
yasuda  says  11
sho  says  "Fizz"
taisuke  says  13
yasuda  says  14
sho  says  "FizzBuzz"
#以下略

発言者より繰り返し回数が少ない場合は、今回対応できていない。また考える。