From da6b56bd1e331060dac88beca2ab51f7a88ba323 Mon Sep 17 00:00:00 2001 From: Lioness100 Date: Tue, 16 Aug 2022 08:59:50 -0400 Subject: [PATCH] fix(terminal): maintain idx when shuffling code_lines closes #14 --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/game.rs | 2 +- src/terminal.rs | 6 ++++-- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b5acf3a..7537c05 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -232,7 +232,7 @@ dependencies = [ [[package]] name = "guess-that-lang" -version = "1.0.17" +version = "1.0.18" dependencies = [ "ansi_colours", "ansi_term", diff --git a/Cargo.toml b/Cargo.toml index 160a84b..38fea7a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "guess-that-lang" -version = "1.0.17" +version = "1.0.18" rust-version = "1.63" authors = ["Lioness100 "] edition = "2021" diff --git a/src/game.rs b/src/game.rs index 5cc7648..d400c7d 100644 --- a/src/game.rs +++ b/src/game.rs @@ -165,7 +165,7 @@ impl Game { thread::scope(|s| { let display = s.spawn(|| { self.terminal - .start_showing_code(code, &available_points, receiver) + .start_showing_code(&code, &available_points, receiver) }); let input = s.spawn(|| { diff --git a/src/terminal.rs b/src/terminal.rs index cda144f..db4742f 100644 --- a/src/terminal.rs +++ b/src/terminal.rs @@ -310,10 +310,12 @@ impl Terminal { /// `available_points` every 1.5 seconds. pub fn start_showing_code( &self, - mut code_lines: Vec<(String, String)>, + code_lines: &[(String, String)], available_points: &Mutex, receiver: Receiver<()>, ) -> Result<()> { + let mut code_lines: Vec<_> = code_lines.iter().enumerate().collect(); + if ARGS.shuffle { code_lines.shuffle(&mut thread_rng()); }; @@ -325,7 +327,7 @@ impl Terminal { // Consume receiver. let receiver = receiver; - for (idx, (raw, line)) in code_lines.iter().enumerate() { + for (idx, (raw, line)) in code_lines { if raw == "\n" { continue; }