開発環境
- macOS Mojave - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Rust 1.36.0 (プログラミング言語)
- プログラミングRust (その他参考書籍)
プログラミング言語Rust 公式ガイド (Steve Klabnik(著)、Carol Nichols(著)、尾崎 亮太(翻訳)、KADOKAWA)の第2章(数当てゲームをプログラムする)のコードをソースコードのコメント中以外にも日本語を含めて書いてみる。(コメント中以外に日本語文字があるとコンパイルに失敗することがあるとの記述があったから、失敗する場合をちょっとずつ探してみる。)
コード
extern crate rand;
use rand::Rng;
use std::cmp::Ordering;
use std::io;
fn main() {
println!("数を予想。");
let secret_number = rand::thread_rng().gen_range(1, 101);
loop {
println!("予想を入力: ");
let mut guess = String::new();
io::stdin()
.read_line(&mut guess)
.expect("行の読み込みに失敗!");
if guess.trim() == "quit" {
break;
}
let guess: u32 = match guess.trim().parse() {
Ok(num) => num,
Err(_) => {
println!("⚠️1から100までの数値を入力してください!");
continue;
}
};
match guess.cmp(&secret_number) {
Ordering::Less => println!("小さすぎます。"),
Ordering::Greater => println!("大きすぎます。"),
Ordering::Equal => {
println!("正解!");
break;
}
}
}
}
入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal)
$ cargo run
Compiling guessing_game v0.1.0 (/.../guessing_game)
Finished dev [unoptimized + debuginfo] target(s) in 0.67s
Running `target/debug/guessing_game`
数を予想。
予想を入力:
50
小さすぎます。
予想を入力:
75
大きすぎます。
予想を入力:
62
小さすぎます。
予想を入力:
68
大きすぎます。
予想を入力:
65
大きすぎます。
予想を入力:
a
数値を入力してください!
予想を入力:
63
小さすぎます。
予想を入力:
64
正解!
$ cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.01s
Running `target/debug/guessing_game`
数を予想。
予想を入力:
-1
数値を入力してください!
予想を入力:
C-c C-c
$ cargo run
Compiling guessing_game v0.1.0 (/.../guessing_game)
Finished dev [unoptimized + debuginfo] target(s) in 0.41s
Running `target/debug/guessing_game`
数を予想。
予想を入力:
50
大きすぎます。
予想を入力:
25
小さすぎます。
予想を入力:
37
大きすぎます。
予想を入力:
31
大きすぎます。
予想を入力:
28
大きすぎます。
予想を入力:
26
小さすぎます。
予想を入力:
27
正解!
$ cargo check
Checking guessing_game v0.1.0 (/.../guessing_game)
Finished dev [unoptimized + debuginfo] target(s) in 0.13s
$ cargo run
Compiling guessing_game v0.1.0 (/.../guessing_game)
Finished dev [unoptimized + debuginfo] target(s) in 0.34s
Running `target/debug/guessing_game`
数を予想。
予想を入力:
quit
$ cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.01s
Running `target/debug/guessing_game`
数を予想。
予想を入力:
50
大きすぎます。
予想を入力:
a
1から100までの数値を入力してください!
予想を入力:
-1
1から100までの数値を入力してください!
予想を入力:
quit
$ cargo check
Checking guessing_game v0.1.0 (/.../guessing_game)
Finished dev [unoptimized + debuginfo] target(s) in 0.13s
$ cargo run
Compiling guessing_game v0.1.0 (/.../guessing_game)
Finished dev [unoptimized + debuginfo] target(s) in 0.42s
Running `target/debug/guessing_game`
数を予想。
予想を入力:
-1
⚠️1から100までの数値を入力してください!
予想を入力:
a
⚠️1から100までの数値を入力してください!
予想を入力:
quit
$
今のところ、日本語と英語(アルファベット、ASCII文字)と絵文字を混ぜても特に問題なし。あるいはOSによって違うのかも。(試したのはmacOSで、その他Windows等は試してない。)
0 コメント:
コメントを投稿