use rand::prelude::*;
use screen_printer::printer::*;
fn main() {
print!("{}", termion::clear::All);
let _cursor_hider = termion::cursor::HideCursor::from(std::io::stdout());
let mut printer = Printer::new_with_printing_position(PrintingPosition::new(
XPrintingPosition::Middle,
YPrintingPosition::Middle,
));
let mut rng = rand::thread_rng();
for iteration in 1..=6 {
let (width, height, mut list_of_numbers): (usize, usize, Vec<u8>) = if iteration % 2 == 0 {
(200, 50, vec![0; 200 * 50])
} else {
(100, 25, vec![0; 100 * 25])
};
for _ in 0..5000 {
update_random_number_array(&mut rng, &mut list_of_numbers);
let grid =
Printer::create_grid_from_full_character_list(&list_of_numbers, width, height).unwrap();
printer
.dynamic_print(grid)
.unwrap_or_else(|error| panic!("An error has occurred: '{error}'"));
}
}
print!("{}", termion::clear::All);
}
fn update_random_number_array(rng: &mut ThreadRng, number_array: &mut [u8]) {
for num in number_array.iter_mut() {
*num = rng.gen_range(0..9);
}
}