diff --git a/.gitignore b/.gitignore index f446af5..b372844 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ -tally/target/ -tally/Cargo.lock -rabbits/target/ -rabbits/Cargo.lock +rust/tally/target/ +rust/tally/Cargo.lock +rust/rabbits/target/ +rust/rabbits/Cargo.lock +rust/hex_colors/target/ +rust/hex_colors/Cargo.lock diff --git a/python/dice_roller.py b/python/dice_roller.py index 9a3347b..c864311 100644 --- a/python/dice_roller.py +++ b/python/dice_roller.py @@ -12,6 +12,7 @@ def roll(number, sides): print(res, ":", *throws) return res + def parselist(path): """ parse a list containing dice rolls (one per line) a la diff --git a/rabbits/Cargo.toml b/rabbits/Cargo.toml deleted file mode 100644 index cf38f98..0000000 --- a/rabbits/Cargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -name = "rabbits" -version = "0.1.0" -authors = ["Cpt. Captain "] - -[dependencies] diff --git a/rabbits/src/main.rs b/rabbits/src/main.rs deleted file mode 100644 index 2dc51f4..0000000 --- a/rabbits/src/main.rs +++ /dev/null @@ -1,103 +0,0 @@ -// https://www.reddit.com/r/dailyprogrammer/comments/7s888w/20180122_challenge_348_easy_the_rabbit_problem/ - -use std::{thread, time, io}; - -fn init(male: i128, female: i128, needed_alive: i128) -> ([i128; 96], [i128; 96], i128){ - - let mut m: [i128; 96] = [0; 96]; - let mut f: [i128; 96] = [0; 96]; - m[2] = male; - f[2] = female; - return (m, f, needed_alive); -} - - -// reproduce, by letting all females 4 months and over have 9 female and 5 male descendants -// fn reproduce(m_pop: [i128; 96], f_pop: [i128; 96]) -> ([i128; 96], [i128;96], i128, i128) { -fn reproduce(m_pop: [i128; 96], f_pop: [i128; 96]) -> (i128, i128) { - let mut res_m = 0; - let mut res_f = 0; - let f_iter = f_pop.iter().enumerate(); - for (i, count) in f_iter { - if i < 95 && i > 3{ - // res_f[0] = res_f[0] + count * 9; - // res_m[0] = res_m[0] + count * 5; - res_m = res_m + count * 5; - res_f = res_f + count * 9; - } - } - return (res_m, res_f); -} - -// age the bunny population by shifting the array one to the right -fn age(m_pop: [i128; 96], f_pop: [i128; 96], new_males: i128, new_females: i128) -> ([i128; 96], [i128; 96]){ - let mut res_m: [i128; 96] = [0; 96]; - let mut res_f: [i128; 96] = [0; 96]; - - res_m[0] = new_males; - res_f[0] = new_females; - - let f_iter = f_pop.iter().enumerate(); - let m_iter = m_pop.iter().enumerate(); - for (i, count) in f_iter { - if i < 95{ - res_f[i+1] = *count; - } - } - for (i, count) in m_iter { - if i < 95{ - res_m[i+1] = *count; - } - } - return (res_m, res_f); -} - -fn main() { - - // this whole part is just for reading from stdin... - - let mut input_m = String::new(); - let mut input_f = String::new(); - let mut input_n = String::new(); - - println!("Enter the number of male rabbits to start with:"); - io::stdin().read_line(&mut input_m).expect("failed to read input"); - println!("Enter the number of female rabbits to start with:"); - io::stdin().read_line(&mut input_f).expect("failed to read input"); - println!("Enter the number of rabbits you want to reach:"); - io::stdin().read_line(&mut input_n).expect("failed to read input"); - - let trim_m = input_m.trim(); - let trim_f = input_f.trim(); - let trim_n = input_n.trim(); - - let trims = vec!(trim_m, trim_f, trim_n); - let mut mf: Vec = vec!(10, 10, 10000); - for (i, trim) in trims.iter().enumerate() { - let g = &trim.parse::().unwrap_or(20); - mf[i] = *g; - } - - // . up until here - - let (mut m, mut f, n_a) = init(mf[0], mf[1], mf[2]); - let mut sum_male: i128 = m.iter().sum(); - let mut sum_female: i128 = f.iter().sum(); - let mut sum = sum_male + sum_female; - // println!("There are now {} rabbits alive!", sum); - let mut i = 0; - while sum < n_a { - // this handling of tuples sucks, there's gotta be a better way... - let (r_m, r_f) = reproduce(m, f); - let (r_m, r_f) = age(m, f, r_m, r_f); - m = r_m; - f = r_f; - sum_male = m.iter().sum(); - sum_female = f.iter().sum(); - sum = sum_male + sum_female; - println!("There are now {} rabbits alive! {} males and {} females", sum, sum_male, sum_female); - thread::sleep(time::Duration::from_millis(500)); - i += 1; - } - println!("It took {} months!", i); -} diff --git a/tally/.idea/misc.xml b/tally/.idea/misc.xml deleted file mode 100644 index d6cdb7a..0000000 --- a/tally/.idea/misc.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/tally/.idea/modules.xml b/tally/.idea/modules.xml deleted file mode 100644 index e06f945..0000000 --- a/tally/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/tally/.idea/tally.iml b/tally/.idea/tally.iml deleted file mode 100644 index d6ebd48..0000000 --- a/tally/.idea/tally.iml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/tally/.idea/workspace.xml b/tally/.idea/workspace.xml deleted file mode 100644 index f8aefbc..0000000 --- a/tally/.idea/workspace.xml +++ /dev/null @@ -1,267 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - true - DEFINITION_ORDER - - - - - - - - - - - - - - - - - - - - - - - - - - - -