Menu
Coddy logo textTech

ステータスレポート

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

challenge icon

チャレンジ

簡単

バーチャルペットの開発は順調ですね!次は、ペットが自分の気分を報告できるようにしましょう。このステップでは、ペットの現在の状態を完全に把握できる status メソッドを追加します。

ステータスレポートは、エネルギーと空腹度に基づいてペットの状態を説明する必要があります。ペットの気分は、どれだけ適切に世話をされているかによって変わります:

  • エネルギーが 50 以上、かつ空腹度が 50 以下の場合、ペットは happy です。
  • それ以外の場合、ペットは tired です。

Pet&self を受け取る status メソッドを追加し、ペットの名前、エネルギー、空腹度、そして気分を表示する完全なステータスレポートを出力してください。

ステータスレポートは、以下の正確な形式に従う必要があります:

--- Status Report ---
Name: {name}
Energy: {energy}
Hunger: {hunger}
Mood: {mood}

main.rs で、ペットの名前、エネルギー、空腹度の値を読み取り、それらの値でペットを設定してから、status メソッドを呼び出してレポートを表示してください。

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

Buddy
70
30

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

--- Status Report ---
Name: Buddy
Energy: 70
Hunger: 30
Mood: happy

また、入力が以下の場合:

Max
40
60

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

--- Status Report ---
Name: Max
Energy: 40
Hunger: 60
Mood: tired

このメソッドを使えば、いつでもペットの健康状態を素早く確認できます!

自分で試してみよう

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のすべてのレッスン