Created
March 10, 2018 16:40
-
-
Save ddrscott/9613803ece7db8b8cd84af0f255d06f5 to your computer and use it in GitHub Desktop.
Guessing Game from Learning Rust: https://doc.rust-lang.org/book/first-edition/guessing-game.html
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| extern crate rand; | |
| use std::io; | |
| use rand::Rng; | |
| use std::cmp::Ordering; | |
| /// Thanks: https://doc.rust-lang.org/book/first-edition/guessing-game.html | |
| fn main() { | |
| println!("Guess the number!"); | |
| let secret_number = rand::thread_rng().gen_range(1, 101); | |
| // println!("The secret number is: {}", secret_number); | |
| loop { | |
| if get_and_check(&secret_number) { | |
| break; | |
| } | |
| } | |
| } | |
| fn get_and_check(secret: &u32) -> bool { | |
| 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(_) => { | |
| println!("{} is not a number. Try again: ", guess.trim()); | |
| return false; | |
| } | |
| }; | |
| println!("You guessed: {}", guess); | |
| match guess.cmp(secret) { | |
| Ordering::Less => println!("Too small"), | |
| Ordering::Greater => println!("Too big!"), | |
| Ordering::Equal => { | |
| println!("You win!"); | |
| return true; | |
| } | |
| } | |
| false | |
| } |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
File created during https://ddrscott.github.io/blog/2018/getting-rusty/