Menu
Coddy logo textTech

最後のインタラクション

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

challenge icon

チャレンジ

簡単

バーチャルペットの構築、おめでとうございます!この最終ステップでは、ペットとの一連のインタラクションをシミュレートすることで、すべてを統合します。ここでは、作成したすべてのメソッドが調和して動作します!

ペットモジュールには、食事、遊び、ステータスレポートなど、必要な機能がすべて揃っています。次は、バーチャルな相棒の1日の様子を示すシミュレーションを作成します。

main.rs でペットの名前を読み取り、次の一連のインタラクションを実行します:

  1. 指定された名前で新しいペットを作成する
  2. 初期のステータスレポートを表示する
  3. ペットと2回遊ぶ
  4. ペットに1回食事を与える
  5. 最終的なステータスレポートを表示する

2つのステータスレポートの間に、遷移を示すための区切り線を表示してください:

--- After Activities ---

例えば、入力が以下のようであれば:

Buddy

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

--- Status Report ---
Name: Buddy
Energy: 100
Hunger: 0
Mood: happy
Buddy had fun playing!
Buddy had fun playing!
Buddy enjoyed the meal!
--- After Activities ---
--- Status Report ---
Name: Buddy
Energy: 60
Hunger: 0
Mood: happy

ステータスがどのように変化するかを思い出してください:遊ぶたびにエネルギーを 20 消費し、空腹度が 15 増加します。一方、食事は空腹度を 30 減少させます。2回の遊びと1回の食事の後、ペットのエネルギーは 100 から 60 に下がり、空腹度は 0 から 30 になった後、再び 0 に戻ります。

この最終チャレンジは、あなたが構築した完全なバーチャルペットシステムを披露するものです。プライベートフィールド、ゲッター、セッター、そしてメソッドが連携してインタラクティブな体験を作り出す、完全にカプセル化されたモジュールです!

自分で試してみよう

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

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