1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
use rand::Rng;

pub fn random_number(lower_bound: u16, upper_bound: u16) {
    let number = rand::thread_rng().gen_range(lower_bound..=upper_bound);
    println!("{}", number);
}

pub fn coin_toss(tosses: u8) {
    (1..=tosses).for_each(|_| match rand::thread_rng().gen_range(0..=1) {
        0 => println!("Heads"),
        1 => println!("Tails"),
        _ => println!("Something else"),
    });
}

pub fn choose_from_list(items: &Vec<&str>, amount: u8) {
    (1..=amount).for_each(|_| {
        let chosen_index = rand::thread_rng().gen_range(0..=items.len() - 1);
        println!("{}", items[chosen_index]);
    })
}

pub fn roll_dice(sides: f32) {
    let random = rand::random::<f32>() * sides;
    let number = (random.floor() + 1.0).round();
    println!("{}", number);
}