summaryrefslogtreecommitdiff
path: root/guessing_game/src
diff options
context:
space:
mode:
authorKai Stevenson <kai@kaistevenson.com>2025-05-07 23:08:15 -0700
committerKai Stevenson <kai@kaistevenson.com>2025-05-07 23:08:15 -0700
commitaf2bc841119a6751c240dec95dd5511d4ee31d36 (patch)
tree693cb7d3d6d06bb667a89b1d4d8d2bdaee8ab983 /guessing_game/src
init ; most of tic tac toe done
Diffstat (limited to 'guessing_game/src')
-rw-r--r--guessing_game/src/main.rs42
1 files changed, 42 insertions, 0 deletions
diff --git a/guessing_game/src/main.rs b/guessing_game/src/main.rs
new file mode 100644
index 0000000..561843d
--- /dev/null
+++ b/guessing_game/src/main.rs
@@ -0,0 +1,42 @@
+use rand::{self, Rng};
+use std::{cmp::Ordering, io};
+
+fn main() {
+ println!("Guessing game!");
+
+ let secret_number = rand::thread_rng().gen_range(1..=10);
+ println!("The secret number is {}", secret_number);
+
+ loop {
+ println!("Please enter a guess!");
+ let mut guess = String::new();
+
+ io::stdin()
+ .read_line(&mut guess)
+ .expect("A guess should be entered");
+
+ println!("You guessed: {}", guess);
+
+ let guess: u32 = match guess.trim().parse::<u32>() {
+ Ok(num) => num,
+ Err(err) => {
+ println!("Couldn't parse '{}' ({})", guess.trim(), err);
+ continue;
+ }
+ };
+
+ match secret_number.cmp(&guess) {
+ Ordering::Less => {
+ println!("You guessed wrong! ({} < {})", secret_number, guess);
+ }
+ Ordering::Equal => {
+ println!("You guessed right! ({} = {})", secret_number, guess);
+ break;
+ }
+ Ordering::Greater => {
+ println!("You guessed wrong! ({} > {})", secret_number, guess);
+ }
+ }
+ println!("Try again!")
+ }
+}