use std::io;
use rand::Rng;
use std::cmp::Ordering;
fn main()
{
//문자를 출력한다.
println!("숫자 맞추기 게임!!!!");
println!("숫자를 입력해주세요 : ");
//난수를 얻는다.
let rand_number = rand::thread_rng().gen_range(1,101);
//반복한다.
loop{
//let은 변수를 선언할 때 사용하며 기본적으로는 불변적이지만 앞에 mut을 붙이면 가변적으로 변한다.
let mut input_number = String::new();
//사용자로부터 문자,문자열을 입력받는다.
io::stdin().read_line(&mut input_number).expect("오류입니다.");
//사용자로부터 입력받은 문자,문자열을 정수로 변환한다.
//parse()의 반환값은 나열자이며 성공한다면 나열자에 담겨있는
//문자열과 같은 정수가 반환되고 그것이 아니라면 다시 입력받게한다.
let input_number : u32 = match input_number.trim().parse(){
Ok(num) => num,
Err(_) => {
println!("잘못된 입력입니다. 다시입력해주세요.");
continue;
}
};
//사용자로부터 입력받은 변수와 난수로 만들어진 변수를 비교한다.
match input_number.cmp(&rand_number){
Ordering::Greater => println!("더 작습니다"),
Ordering::Less => println!("더 큽니다."),
Ordering::Equal =>{
println!("정답입니다. 정답은 {}이였습니다.",rand_number);
break;
}
}
}
}