From 0741078d7a4c0e6e049dcd3b0d3e26a55084dab5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Boh=C3=A1=C4=8Dek?= Date: Wed, 21 Dec 2022 12:58:56 +0100 Subject: [PATCH] feat: improve number generation --- src/entrypoint.rs | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/entrypoint.rs b/src/entrypoint.rs index 9b05f8d..8beee68 100644 --- a/src/entrypoint.rs +++ b/src/entrypoint.rs @@ -281,17 +281,33 @@ impl Game { self.current_number = None; } + #[inline] + fn generate_number(&mut self) -> [u8; 4] { + let first = self.rng.take_u8(); + let second = self.rng.take_u8(); + + let mut digits = [ + ((first >> 4) & 0xF) + 1, + first & 0xF, + (second >> 4) & 0xF, + second & 0xF]; + + for digit in digits.iter_mut() { + if *digit >= 10 { + *digit -= 10; + } + } + + digits + } + fn start_new_game(&mut self) { if let Some(animation) = &mut self.animation { animation.cleanup(&mut self.seven_segment, &mut self.led_matrix); self.animation = None; } - let mut guessing_number = [0; DIGITS]; - for i in 0..DIGITS { - guessing_number[i] = self.rng.take_u8() % 10; - } - + let guessing_number = self.generate_number(); let current_number = [0; 4]; self.guessing_number = Some(guessing_number); -- 2.48.1