Menu
Coddy logo textTech

ペットと遊ぶ

CoddyのRustジャーニー「オブジェクト指向プログラミング」セクションの一部。レッスン 21/61。

challenge icon

チャレンジ

簡単

ペットには餌を与えて元気になりました。次は運動をさせましょう!このステップでは、バーチャルな仲間と触れ合える play メソッドを追加します。

ペットと遊ぶとエネルギーを消費しますが、同時に空腹度も増加します。ペットが遊ぶと、energy20 減少し、hunger15 増加します。ただし、エネルギーが 0 未満になることはなく、空腹度が 100 を超えることもありません。

遊んだ後にペットがどれくらい疲れているか確認できるよう、energy getter メソッドも必要です。

main.rs で、初期エネルギー値と空腹度の値とともにペットの名前を読み取ります。ペットの準備ができたら、play を一度呼び出し、エネルギーと空腹度の両方を表示します。

play メソッドは、ペットが楽しく遊んだことを示すメッセージを出力します。

{name} had fun playing!

次に、main ファイルでステータスを表示します。

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());
}

オブジェクト指向プログラミングのすべてのレッスン

自分で練習してみよう: Rustオンラインコンパイラ