最後のインタラクション
CoddyのRustジャーニー「Object Oriented Programming」セクションの一部 — レッスン 23/61。
チャレンジ
簡単バーチャルペットの構築、おめでとうございます!この最終ステップでは、ペットとの一連のインタラクションをシミュレートすることで、すべてを統合します。ここでは、作成したすべてのメソッドが調和して動作します!
ペットモジュールには、食事、遊び、ステータスレポートなど、必要な機能がすべて揃っています。次は、バーチャルな相棒の1日の様子を示すシミュレーションを作成します。
main.rs でペットの名前を読み取り、次の一連のインタラクションを実行します:
- 指定された名前で新しいペットを作成する
- 初期のステータスレポートを表示する
- ペットと2回遊ぶ
- ペットに1回食事を与える
- 最終的なステータスレポートを表示する
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();
}