반응형
아래는 Rust로 작성된 간단한 숫자 맞추기 게임입니다. 이 게임은 사용자가 1부터 100 사이의 숫자를 맞추는 게임입니다. 사용자가 입력한 숫자가 컴퓨터가 생성한 무작위 숫자보다 큰지, 작은지를 알려주고, 사용자가 맞출 때까지 반복합니다.
1. Cargo 프로젝트 생성
먼저, Cargo를 사용하여 새로운 프로젝트를 생성합니다.
cargo new number_guessing_game
cd number_guessing_game
2. Cargo.toml
수정
다음으로, Cargo.toml
파일을 열고 rand
라이브러리를 추가합니다. 이 라이브러리는 난수 생성에 사용됩니다.
[dependencies]
rand = "0.8"
3. src/main.rs
작성
이제 src/main.rs
파일을 열고 다음 코드를 작성합니다.
use rand::Rng;
use std::io;
fn main() {
println!("숫자 맞추기 게임에 오신 것을 환영합니다!");
println!("1부터 100 사이의 숫자를 맞춰보세요.");
let secret_number = rand::thread_rng().gen_range(1..101);
loop {
println!("숫자를 입력하세요.");
let mut guess = String::new();
io::stdin()
.read_line(&mut guess)
.expect("입력을 읽지 못했습니다.");
let guess: u32 = match guess.trim().parse() {
Ok(num) => num,
Err(_) => {
println!("유효한 숫자를 입력하세요.");
continue;
}
};
println!("입력한 숫자: {}", guess);
match guess.cmp(&secret_number) {
std::cmp::Ordering::Less => println!("너무 작습니다!"),
std::cmp::Ordering::Greater => println!("너무 큽니다!"),
std::cmp::Ordering::Equal => {
println!("정답입니다!");
break;
}
}
}
}
4. 코드 설명
use rand::Rng;
와use std::io;
는 각각 난수 생성과 입력 처리를 위해 필요한 라이브러리를 가져옵니다.let secret_number = rand::thread_rng().gen_range(1..101);
는 1부터 100 사이의 난수를 생성합니다.loop
는 사용자가 숫자를 맞출 때까지 반복하는 무한 루프입니다.io::stdin().read_line(&mut guess).expect("입력을 읽지 못했습니다.");
는 사용자 입력을 읽습니다.let guess: u32 = match guess.trim().parse() { ... }
는 입력을 숫자로 변환합니다. 유효하지 않은 입력은 에러 메시지를 출력하고 루프의 다음 반복으로 넘어갑니다.match guess.cmp(&secret_number) { ... }
는 사용자의 입력과 비밀 숫자를 비교하여 결과에 따라 메시지를 출력합니다.
5. 실행
모든 코드가 작성되면 다음 명령어를 사용하여 프로그램을 빌드하고 실행할 수 있습니다.
cargo run
프로그램이 실행되면, "숫자 맞추기 게임에 오신 것을 환영합니다!"라는 메시지가 출력되고, 숫자를 입력할 수 있는 프롬프트가 나타납니다. 정답을 맞출 때까지 게임이 계속됩니다.
반응형
'언어 > Rust' 카테고리의 다른 글
[ Rust ] 러스트는 어떤 언어인가? (0) | 2024.08.27 |
---|---|
[ Rust ] Result Type을 사용해서 반환값 처리하기 (0) | 2024.06.07 |
[ Rust ] 가변변수/불변변수 선언하고 사용하기 (0) | 2024.06.07 |
[ Rust ] Cargo로 빌드 하고 실행하기 (0) | 2024.06.07 |
[ Rust ] 설치하고 첫번째 프로그램 작성 및 실행 (0) | 2024.04.21 |