ペットと遊ぶ
CoddyのRustジャーニー「オブジェクト指向プログラミング」セクションの一部。レッスン 21/61。
チャレンジ
簡単ペットには餌を与えて元気になりました。次は運動をさせましょう!このステップでは、バーチャルな仲間と触れ合える play メソッドを追加します。
ペットと遊ぶとエネルギーを消費しますが、同時に空腹度も増加します。ペットが遊ぶと、energy は 20 減少し、hunger は 15 増加します。ただし、エネルギーが 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オンラインコンパイラ