diff --git a/tests/rust_test/hangman.rs b/tests/rust_test/hangman.rs index 37f6267dac6f133900fef60c662ad292a5efb534..5db0b6ea7e020a71c68f45b86333154d5f68e3ad 100644 --- a/tests/rust_test/hangman.rs +++ b/tests/rust_test/hangman.rs @@ -33,28 +33,51 @@ fn main() { process::exit(1); } }; + println!("Your guess is: {} ", guess); if guess.len() == 0 { println!("You didn't guess anything, thus you lose."); break; } if guess.len() != 1 { - continue; + println!("you guessed more than 1 char at a time, lose a turn "); + tries -= 1; + println!("42/tries = {}.", 42/tries); + println!("You have {} tries left.", tries); + continue; } let mut found = false; + let mut in_word = false; for (i, c) in secret_word.chars().enumerate() { if guess.chars().next().unwrap() == c { - found = true; + if word_progress[i] != c + { + println!("Found a new letter, good job!"); + found = true; + } + in_word = true; word_progress[i] = c; } } - if !found { + if !in_word { tries -= 1; println!("42/tries = {}.", 42/tries); println!("Wrong! You have {} tries left.", tries); + continue; } + if !found { + tries -= 1; + println!("42/tries = {}.", 42/tries); + println!("You already guessed that. You have {} tries left.", tries); + continue; + } + else + { + println!("42/tries = {}.", 42/tries); + println!("That letter is in the word! You have {} tries left.", tries); + } if !word_progress.contains(&'_') { println!("You win! The word was {}.", secret_word); @@ -66,5 +89,6 @@ fn main() { break; } } + println!("No more guesses have been found, you lose"); }