Menu
Coddy logo textTech

ペットと遊ぶ

CoddyのRustジャーニー「Object Oriented Programming」セクションの一部 — レッスン 21/61。

challenge icon

チャレンジ

簡単

ペットにお腹いっぱい食べさせて幸せにしました。次は運動をさせてあげましょう!このステップでは、バーチャルコンパニオンと触れ合うための play メソッドを追加します。

ペットと遊ぶとエネルギーを消費しますが、同時にお腹も空きます。ペットが遊ぶと、energy20 減少し、hunger15 増加します。ただし、エネルギーは 0 を下回ってはならず、空腹度は 100 を超えてはいけません。

また、遊びの後にペットがどれくらい疲れているかを確認するために、energy のゲッターメソッドも必要です。

main.rs で、ペットの名前と初期のエネルギー、空腹度の値を読み取ります。ペットの設定が終わったら、play を1回呼び出し、エネルギーと空腹度の両方のレベルを表示してください。

play メソッドは、ペットが楽しんだことを示すメッセージを表示する必要があります:

{name} had fun playing!

次に、メインファイルで統計情報を表示します:

Energy: {energy_level}
Hunger: {hunger_level}

例えば、入力が以下の場合:

Buddy
50
30

出力は以下のようになります:

Buddy had fun playing!
Energy: 30
Hunger: 45

もしエネルギーが 10 から始まった場合、遊ぶと 0 になります(負の値にはなりません)。もし空腹度が 90 から始まった場合、遊ぶと 100 で上限に達します。

テストのために両方の値を初期化できるよう、既存の set_hunger に加えて set_energy メソッドを追加する必要があります。

自分で試してみよう

mod pet;

use pet::Pet;

fn main() {
    let mut name = String::new();
    std::io::stdin().read_line(&mut name).expect("Failed to read line");
    let name = name.trim().to_string();

    let mut energy_input = String::new();
    std::io::stdin().read_line(&mut energy_input).expect("Failed to read line");
    let initial_energy: u32 = energy_input.trim().parse().expect("Failed to parse energy");

    let mut hunger_input = String::new();
    std::io::stdin().read_line(&mut hunger_input).expect("Failed to read line");
    let initial_hunger: u32 = hunger_input.trim().parse().expect("Failed to parse hunger");

    let mut my_pet = Pet::new(name);
    my_pet.set_energy(initial_energy);
    my_pet.set_hunger(initial_hunger);
    my_pet.play();

    println!("Energy: {}", my_pet.energy());
    println!("Hunger: {}", my_pet.hunger());
}

Object Oriented Programmingのすべてのレッスン