diff --git a/01.workspace/oxidice_lib/src/imp/die_roll.rs b/01.workspace/oxidice_lib/src/imp/die_roll.rs index 2fcf4cb..db54751 100644 --- a/01.workspace/oxidice_lib/src/imp/die_roll.rs +++ b/01.workspace/oxidice_lib/src/imp/die_roll.rs @@ -1,18 +1,18 @@ use crate::*; use std::ops::*; -fn roll_sides(sides: u16) -> i32 { +fn roll_sides(sides: u16) -> Vec { let mut rng = rand::rng(); - rng.random_range(1..=sides) as i32 + vec![rng.random_range(1..=sides as i32)] } -fn roll_range(range: RangeInclusive) -> i32 { +fn roll_range(range: RangeInclusive) -> Vec { let mut rng = rand::rng(); - rng.random_range(range) + vec![rng.random_range(range)] } impl Die { - pub fn roll(&self) -> i32 { + pub fn roll(&self) -> Vec { match self { Die::Sides(sides) => roll_sides(*sides), Die::Range(range) => roll_range(range.clone()), @@ -27,7 +27,7 @@ mod tests { fn check_roll_range() { let die = Die::Range(5..=5); for _ in 1..=1000 { - assert_eq!(die.roll(), 5); + assert_eq!(die.roll(), [5]); } } } diff --git a/01.workspace/oxidice_lib/src/imp/handful_roll.rs b/01.workspace/oxidice_lib/src/imp/handful_roll.rs index 7a4b8b7..d0e1b8b 100644 --- a/01.workspace/oxidice_lib/src/imp/handful_roll.rs +++ b/01.workspace/oxidice_lib/src/imp/handful_roll.rs @@ -4,7 +4,7 @@ impl Handful { pub fn roll(self) -> Outcome { let mut die_rolls = Vec::::new(); for die in self.dice { - die_rolls.push(die.roll()); + die_rolls.append(&mut die.roll()); } Outcome::List(die_rolls) }