実行結果その1。


$ ruby pizzaruby.rb 
Q: ピザって10回言って
R: ピザ
R: ピザ
R: ピザ
R: ピザ
R: ピザ
R: ピザ
R: ピザ
R: ピザ
R: ピザ
R: ピザ
Q: (肘を指差しながら)ここは?
R: ひざ
Q: \(^o^)/成功

実行結果その2。


$ ruby pizzaruby.rb 
Q: ピザって10回言って
R: ピザ
R: ピザ
R: ピザ
R: ピザ
R: ピザ
R: ピザ
R: ピザ
R: ピザ
R: ピザ
R: ピザ
Q: (肘を指差しながら)ここは?
R: ひじ
Q: 「ひざ」って言ってほしかった。。。

サンプルコード。


$ cat pizzaruby.rb 

class Questioner

  def initialize(name)
    @name = name
  end

  def launchTrap(r)
    puts "#{@name}: ピザって10回言って"
    r.say("ピザ", 10)
    puts "#{@name}: (肘を指差しながら)ここは?"
    if r.answer() == "ひざ"
      puts "#{@name}: \(^o^)/成功"
    else
      puts "#{@name}: 「ひざ」って言ってほしかった。。。"
    end
  end
end

class Respondent

  def initialize(name)
    @name = name
  end

  def say(message, num)
    num.times{
      puts "#{@name}: #{message}"
    }
  end

  def answer()
    answers = ["ひざ", "ひざ", "ひじ", "いまどき10回クイズかよ。。"]
    a = answers.sample
    say(a, 1)
    return a
  end
end

Questioner.new("Q").launchTrap(Respondent.new("R"))

tags: ruby

Posted by NI-Lab. (@nilab)