Rubyでつくる人工無能(前半)

恋するプログラム―Rubyでつくる人工無脳 (プレミアムブックス版)

恋するプログラム―Rubyでつくる人工無脳 (プレミアムブックス版)

こんなの読んでる。オウム返しするプロンプト。写経してみた

class Responder
  def initialize(name)
    @name = name
  end

  def response(input)
    "#{input}ってなに"
  end

  def name
    @name
  end
end

class Unmo
  def initialize(name)
    @name = name
    @responder = Responder.new('What')
  end

  def dialogue(input)
    @responder.response(input)
  end

  def responder_name
    @responder.name
  end

  def name
    @name
  end
end

def prompt(unmo)
  unmo.name + ':' + unmo.responder_name + '> '
end

puts('Unmo System Prototype : proto')
proto = Unmo.new('proto')
while true
  print('> ')
  input = gets
  input.chomp!
  break if input == ''

  response = proto.dialogue(input)
  puts(prompt(proto) + response)
end