本記事の内容は Programming a Guessing Game に同じ
ゲームの内容としては:
- 最初に 1 〜 100 までの秘密の数値がランダムに選ばれる
- ユーザは数値を推測して入力
- 入力された値が外れなら、ヒントとして 正解よりも値が大きいか小さいか教える
- 当てるまでループする
というもの
実行結果とソースコード
実行結果
ソースコード
use std::io; use std::cmp::Ordering; use rand::Rng; fn main() { println!("Guess the number!"); let secret_number = rand::thread_rng().gen_range(1, 100); println!("Hint: the number of range is 1-100."); // // ループ処理開始 // loop { // println!("The secret number is: {}", secret_number); // For debug. println!("Please input your guess."); let mut guess = String::new(); io::stdin().read_line(&mut guess) .expect("Failed to read line"); // ユーザからの入力文字列を数値に変換 let guess: u32 = match guess.trim().parse() { Ok(num) => num, Err(_num) => { println!("\nError: {}", _num); println!("Error: Please input number\n"); continue }, }; println!("You gussed: {}", guess); println!("\n"); // 入力値と正解とを比較 match guess.cmp(&secret_number) { Ordering::Less => println!("Too small!"), Ordering::Greater => println!("Too big!"), Ordering::Equal => { println!("You win!"); break; } } println!(""); } }