use rand::Rng;
use std::cmp::Ordering;
use std::{thread, time};
let secret_number = rand::thread_rng().gen_range(1..6);
loop {
// the bookと違う点②
let mut guess = evcxr_input::get_string("数字を予想し入力してください"); // Rustの変数は不変が原則なので可変にしたい場合はmutを明示
let guess: u32 = match guess.trim().parse() { // 標準入力から受け取ったのはstring型なのでu32型に変換
Ok(num) => num, // 型変換が成功ならguessに格納
Err(_) => continue, // 型変換が失敗ならloop振出しに
};
println!("予想: {}", guess);
// the bookと違う点③
thread::sleep(time::Duration::from_millis(1000));
match guess.cmp(&secret_number) { // guessとsecret_numberの比較
Ordering::Less => println!("小さ過ぎます!"), // guess < secret_numberの場合
Ordering::Greater => println!("大き過ぎます!"), // guess > secret_numberの場合
Ordering::Equal => { // guess = secret_numberの場合
println!("正解です!");
break;
}
}
// the bookと違う点③
thread::sleep(time::Duration::from_millis(1000));
}
予想: 1
小さ過ぎます!
予想: 2
小さ過ぎます!
予想: 3
小さ過ぎます!
予想: 4
小さ過ぎます!
予想: 5
正解です!