Ruby 例題 - 継承とユーザー入力を活用した動物園
Ruby 例題 - 継承とユーザー入力を活用した 動物園
説明
あなたは動物園管理シミュレーションゲームを開発しています。 このゲームにはさまざまな動物がおり、各動物は特定の行動をとることができます。 基本的な動物クラスがあり、特定の動物はこのクラスを継承して個別の行動を追加で行うことができます。
要求事項
1. Animalという親クラスを作成してください。 このクラスはnameプロパティを持ち、speakというメソッドを持ちます。 speakメソッドは基本的に"I'man animal and my name is [name]"と出力します。
2. 2つの子クラスLionとMonkeyを生成してください。 これらのクラスはAnimalクラスを継承します。
- Lionクラスはspeakメソッドをオーバーライディング(再定義)して"Roar! I'm a Lion and my name is [name]"と出力します。
- Monkeyクラスはspeakメソッドをオーバーライディングします。「Oh ooh aah ah!」 I'm a Monkey and my name is [name]と出力します。
3. ユーザーに動物の種類(LionまたはMonkey)と名前を入力してください。
4. 入力された情報に基づいてその動物オブジェクトを作成し、その動物のspeakメソッドを呼び出してください。
class Animal
attr_accessor :name
def initialize(name)
@name = name
end
def speak
puts "私の名前は #{name}"
end
end
class Lion < Animal
def speak
puts "Roar! I'm a Loin and my name is #{name}"
end
end
class Monkey < Animal
def speak
puts "Ooh ooh aah aah! I'm a Monkey and my name is #{name}"
end
end
print "動物の名前を付けてください : "
animal_name = gets.chomp
animal = Animal.new(animal_name)
animal.speak
print "動物のタイプを選んでください (Lion or Monkey) : "
type = gets.chomp
if type == "Lion"
lion = Lion.new(animal_name)
lion.speak
elsif type == "Monkey"
monkey = Monkey.new(animal_name)
monkey.speak
else
puts "間違い。。"
end
1. ユーザーが動物の名前を入力します。
2. Animalクラスのインスタンスが生成され、speakメソッドが呼び出され、動物の名前を出力します。
3. ユーザーが動物のタイプ(LionまたはMonkey)を入力します。
4. 入力されたタイプに応じて、該当するクラス(LionまたはMonkey)のインスタンスが生成され、オーバーライディングされたspeakメソッドが呼び出され、特定の動物の特徴的な音と名前を出力します。