keyb-smash/src/main.rs
2024-03-30 21:01:04 -06:00

33 lines
2 KiB
Rust

use std::env;
use rand::Rng;
fn main() {
let args: Vec<String> = env::args().collect();
let mut rng = rand::thread_rng();
let chars: usize;
if args.len() > 1 {
chars = args[1].parse().expect("Not a valid number!");
} else {
chars = rng.gen_range(20..40);
}
let weighted_char_list = ["a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "a", "s", "s", "s", "s", "s", "s", "s", "s", "s", "s", "s", "s", "s", "s", "s", "d", "d", "d", "d", "d", "d", "d", "d", "d", "d", "d", "d", "d", "d", "d", "d", "f", "f", "f", "f", "f", "f", "f", "f", "f", "f", "f", "f", "f", "f", "f", "f", "f", "f", "f", "f", "g", "g", "g", "g", "g", "g", "g", "g", "g", "g", "g", "g", "h", "h", "h", "h", "h", "h", "h", "h", "h", "h", "h", "h", "j", "j", "j", "j", "j", "j", "j", "j", "j", "j", "j", "j", "j", "j", "j", "j", "j", "j", "j", "j", "k", "k", "k", "k", "k", "k", "k", "k", "k", "k", "k", "k", "k", "k", "k", "k", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", "l", ";", ";", ";", ";", ";", ";", ";", ";", ";", ";", ";", ";", "'", "'", "'", "'", "'", "'", "'", "q", "q", "w", "w", "e", "e", "e", "r", "r", "r", "r", "t", "t", "t", "t", "t", "y", "y", "y", "y", "y", "u", "u", "u", "u", "i", "i", "i", "o", "o", "p", "p", "z", "z", "z", "x", "x", "x", "x", "c", "c", "c", "c", "c", "c", "v", "v", "v", "v", "v", "v", "v", "b", "b", "b", "b", "b", "b", "b", "n", "n", "n", "n", "n", "n", "n", "m", "m", "m", "m", "m", "m", ",", ",", ",", ".", ".", "\n"];
let mut shifted = rng.gen_range(0..=1) == 1;
let mut result = String::new();
for _ in 1..=chars {
if rng.gen_range(0..=100) == 0 {
shifted = !shifted;
}
if shifted {
result.push_str(&weighted_char_list[rng.gen_range(0..weighted_char_list.len())].to_uppercase());
} else {
result.push_str(weighted_char_list[rng.gen_range(0..weighted_char_list.len())]);
}
}
println!("{}, {}", result, weighted_char_list.len());
}