Skip to content
Snippets Groups Projects
Commit 46c428d9 authored by DevDoggo's avatar DevDoggo
Browse files

Added more result-printing functions.

parent 0adf0e71
No related branches found
No related tags found
No related merge requests found
...@@ -3,6 +3,9 @@ extern crate colored; ...@@ -3,6 +3,9 @@ extern crate colored;
use std::io; //standard in-out use std::io; //standard in-out
use std::cmp::Ordering; use std::cmp::Ordering;
use std::cmp::max;
use std::collections::HashMap;
use rand::Rng; use rand::Rng;
use std::io::Write; //seemingly needed to use io::stdout().flush() use std::io::Write; //seemingly needed to use io::stdout().flush()
use colored::*; use colored::*;
...@@ -23,11 +26,48 @@ fn get_input() -> Result<u32, String> { ...@@ -23,11 +26,48 @@ fn get_input() -> Result<u32, String> {
} }
fn print_guesses(v: &Vec<(u32, String)>) { fn print_guesses(v: &Vec<(u32, String)>) {
println!("Results:\nAttempt | Guess"); let iterations = 2;
for i in 0..iterations {
println!("\nResults: Printing All\nAttempt | Guess");
for g in v { for g in v {
println!(" {} | {}", g.0, g.1); println!(" {} | {}", g.0, g.1);
} }
} }
}
fn print_the_last_three_guesses_in_backwards_order_really_nicely(v: &Vec<(u32, String)>) {
let mut count = 0;
println!("\nResults: Printing Last Three\nAttempt | Guess");
for g in v.iter().rev() {
println!(" {} | {}", g.0, g.1);
count += 1;
if count == 3 { break; }
}
}
fn print_hashmap(hm: &HashMap<u32, String>) {
println!("\nResults: Printing HashMap\nAttempt | Guess");
for m in hm{
println!(" {:?} | {:?}", m.0, m.1);
}
}
fn print_hashmap_last_three(hm: &HashMap<u32, String>) {
println!("\nResults: Printing Last Three in Hashmap\nAttempt | Guess");
let mut entries = 0;
for m in hm.iter() {
entries += 1;
}
//let ln: u32 = hm.len(); //Give error because hm.len() is usize, not u32
for i in (max(entries-2, 1)..entries+1).rev() {
let mut item = hm.get(&i);
match item {
Some(num) => println!(" {} | {}", i, num),
None => println!("Nothing!"),
};
}
}
fn main() { fn main() {
println!("{}", "\n\nGuess the number or perish. :)".bold()); println!("{}", "\n\nGuess the number or perish. :)".bold());
...@@ -40,6 +80,10 @@ fn main() { ...@@ -40,6 +80,10 @@ fn main() {
//Vector to hold all guesses, first to last. //Vector to hold all guesses, first to last.
let mut guesses: Vec<(u32, String)>= Vec::new(); let mut guesses: Vec<(u32, String)>= Vec::new();
let mut guess_pair: (u32, String); let mut guess_pair: (u32, String);
//Hashmap
let mut guess_hashmap = HashMap::new();
let mut guess: u32; let mut guess: u32;
let mut attempts = 0; let mut attempts = 0;
...@@ -56,9 +100,14 @@ fn main() { ...@@ -56,9 +100,14 @@ fn main() {
}; };
attempts += 1; attempts += 1;
//Vector
guess_pair = (attempts, guess.to_string()); guess_pair = (attempts, guess.to_string());
guesses.push(guess_pair); guesses.push(guess_pair);
//Hashmap
guess_hashmap.insert(attempts, guess.to_string());
println!("\nYou guessed: {}!", guess); println!("\nYou guessed: {}!", guess);
print!("That's "); print!("That's ");
...@@ -78,7 +127,10 @@ fn main() { ...@@ -78,7 +127,10 @@ fn main() {
} }
println!("\nYou've guessed {} time(s) already!", attempts.to_string().yellow()) println!("\nYou've guessed {} time(s) already!", attempts.to_string().yellow())
} }
//println!("{:?}", guesses);
print_guesses(&guesses); print_guesses(&guesses);
print_the_last_three_guesses_in_backwards_order_really_nicely(&guesses);
print_hashmap(&guess_hashmap);
print_hashmap_last_three(&guess_hashmap);
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment