From 00fe0f68f65ca598eec49757c72ae860f02d5200 Mon Sep 17 00:00:00 2001 From: robin Date: Sat, 29 Jun 2024 16:27:24 +0200 Subject: [PATCH] src/main.rs aktualisiert Added restart funktion, which restarts the if you die --- src/main.rs | 74 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 44 insertions(+), 30 deletions(-) diff --git a/src/main.rs b/src/main.rs index 0a7b329..63f8a7f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,34 +1,48 @@ -use std::io; use rand::Rng; -fn main(){ - let mut score:i16 = 0; +use std::io; +use std::process::exit; + +fn main() { + game_loop(); +} +fn game_loop() { + let mut score = 0; while score < 32 { - println!("Vor dir sind drei Türen, eine von ihnen tötet dich"); - println!("Durch welche gehst du? Gib eine Zahl zwischen 1 und 3 ein"); - let secretnumber = rand::thread_rng().gen_range(1..=3); - let mut guess = String::new(); - - io::stdin() - .read_line(&mut guess) - .expect("Failed to read line"); - if guess.chars().any(|c| c.is_digit(10)){ - - let guess: u32 = guess.trim().parse().expect("Please type a number!"); - if guess == secretnumber { - println!("Dein score: {}", score); + println!("Dein score ist: {}",score); + println!("Vor dir sind drei Türen, eine von ihnen tötet dich. Durch welche gehst du? Gib eine Zahl zwischen 1 und 3 ein"); + let secretnumber: i8 = rand::thread_rng().gen_range(1..=3); + let guess = input(); + let ergebnis = vergleich(guess, secretnumber); + if ergebnis == false { + println!( + "Du hast überlebt, der Geist war hinter der Tür {}", + secretnumber + ); + score = score + 1; + } else { println!("Du bist tot"); - std::process::exit(0); + println!("Game restarts"); + restart(); + exit(0); } - if guess > 4 { - println!("die option ist unbekannt"); - } - else { - println!("Du hast überlebt"); - score = score += 1; - println!("Der Geist ist hinter der Tür {}", secretnumber); - }} - else { - println!("Die Option ist unbekannt") - }} - println!("Du hast gewonnen"); - } \ No newline at end of file + } + println!("Du hast gewonnen "); +} +fn input() -> i8 { + let mut guess = String::new(); + io::stdin() + .read_line(&mut guess) + .expect("Failed to read line"); + let guess: i8 = guess.trim().parse().expect("Please type a number!"); + return guess; +} +fn vergleich(guess: i8, secretnumber: i8) -> bool { + if guess == secretnumber { + true + } else { + false + } +} +fn restart(){ + game_loop() +} \ No newline at end of file