summaryrefslogtreecommitdiff
path: root/guessing_game
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2017-01-12 19:41:24 +0200
committerYuval Adam <_@yuv.al>2017-01-12 19:41:24 +0200
commit7b9d5ece9e6dc0ff1cd78d9f62fe75c9960f8ada (patch)
treeb3c8eeb18ef2bb8a33bfd2efed1c51c9175d78d3 /guessing_game
parent3850cf9814973b8888121d4549b0bf22235d2166 (diff)
A nice looking number guessing game
Diffstat (limited to 'guessing_game')
-rw-r--r--guessing_game/Cargo.toml1
-rw-r--r--guessing_game/src/main.rs32
2 files changed, 29 insertions, 4 deletions
diff --git a/guessing_game/Cargo.toml b/guessing_game/Cargo.toml
index ea9fc9e..edd125a 100644
--- a/guessing_game/Cargo.toml
+++ b/guessing_game/Cargo.toml
@@ -4,3 +4,4 @@ version = "0.1.0"
authors = ["Yuval Adam <_@yuv.al>"]
[dependencies]
+rand="0.3.0" \ No newline at end of file
diff --git a/guessing_game/src/main.rs b/guessing_game/src/main.rs
index 33209c1..7b86040 100644
--- a/guessing_game/src/main.rs
+++ b/guessing_game/src/main.rs
@@ -1,9 +1,33 @@
+extern crate rand;
+
use std::io;
+use std::cmp::Ordering;
+use rand::Rng;
fn main() {
println!("Guess the number!");
- println!("Please input your guess");
- let mut guess = String::new();
- io::stdin().read_line(&mut guess).expect("Failed to read line");
- println!("You guessed: {}", guess)
+
+ let secret = rand::thread_rng().gen_range(1, 101);
+
+ loop {
+ 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(_) => continue,
+ };
+
+ println!("You guessed: {}", guess);
+
+ match guess.cmp(&secret) {
+ Ordering::Less => println!("Too small!"),
+ Ordering::Greater => println!("Too big!"),
+ Ordering::Equal => {
+ println!("You win!");
+ break;
+ }
+ }
+ }
}