clean up 14
This commit is contained in:
+10
-17
@@ -18,12 +18,7 @@ fn part2(data: &[Reindeer]) {
|
|||||||
race.tick();
|
race.tick();
|
||||||
}
|
}
|
||||||
|
|
||||||
let result = race
|
let result = race.participants.iter().map(|p| p.points).max().unwrap();
|
||||||
.participants
|
|
||||||
.iter()
|
|
||||||
.map(|p| p.reindeer.points)
|
|
||||||
.max()
|
|
||||||
.unwrap();
|
|
||||||
println!("{result}");
|
println!("{result}");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -37,7 +32,7 @@ fn part1(data: &[Reindeer]) {
|
|||||||
let result = race
|
let result = race
|
||||||
.participants
|
.participants
|
||||||
.iter()
|
.iter()
|
||||||
.map(|p| p.reindeer.distance_travelled)
|
.map(|p| p.distance_travelled)
|
||||||
.max()
|
.max()
|
||||||
.unwrap();
|
.unwrap();
|
||||||
println!("{result}");
|
println!("{result}");
|
||||||
@@ -63,7 +58,7 @@ impl Race {
|
|||||||
self.clock += 1;
|
self.clock += 1;
|
||||||
for p in &mut self.participants {
|
for p in &mut self.participants {
|
||||||
if p.state == Flying {
|
if p.state == Flying {
|
||||||
p.reindeer.distance_travelled += p.reindeer.speed;
|
p.distance_travelled += p.reindeer.speed;
|
||||||
p.current_activity_time += 1;
|
p.current_activity_time += 1;
|
||||||
if p.current_activity_time == p.reindeer.fly_time {
|
if p.current_activity_time == p.reindeer.fly_time {
|
||||||
p.current_activity_time = 0;
|
p.current_activity_time = 0;
|
||||||
@@ -80,12 +75,12 @@ impl Race {
|
|||||||
let max_distance = self
|
let max_distance = self
|
||||||
.participants
|
.participants
|
||||||
.iter()
|
.iter()
|
||||||
.map(|p| p.reindeer.distance_travelled)
|
.map(|p| p.distance_travelled)
|
||||||
.max()
|
.max()
|
||||||
.unwrap();
|
.unwrap();
|
||||||
for p in &mut self.participants {
|
for p in &mut self.participants {
|
||||||
if p.reindeer.distance_travelled == max_distance {
|
if p.distance_travelled == max_distance {
|
||||||
p.reindeer.points += 1;
|
p.points += 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -96,6 +91,8 @@ struct Participant {
|
|||||||
pub reindeer: Reindeer,
|
pub reindeer: Reindeer,
|
||||||
pub state: State,
|
pub state: State,
|
||||||
pub current_activity_time: usize,
|
pub current_activity_time: usize,
|
||||||
|
pub distance_travelled: usize,
|
||||||
|
pub points: usize,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Participant {
|
impl Participant {
|
||||||
@@ -104,6 +101,8 @@ impl Participant {
|
|||||||
reindeer: r,
|
reindeer: r,
|
||||||
state: State::Flying,
|
state: State::Flying,
|
||||||
current_activity_time: 0,
|
current_activity_time: 0,
|
||||||
|
distance_travelled: 0,
|
||||||
|
points: 0,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -119,8 +118,6 @@ struct Reindeer {
|
|||||||
pub speed: usize,
|
pub speed: usize,
|
||||||
pub fly_time: usize,
|
pub fly_time: usize,
|
||||||
pub rest_time: usize,
|
pub rest_time: usize,
|
||||||
pub distance_travelled: usize,
|
|
||||||
pub points: usize,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Reindeer {
|
impl Reindeer {
|
||||||
@@ -130,15 +127,11 @@ impl Reindeer {
|
|||||||
let speed = iter.nth(3).unwrap().parse().unwrap();
|
let speed = iter.nth(3).unwrap().parse().unwrap();
|
||||||
let fly_time = iter.nth(2).unwrap().parse().unwrap();
|
let fly_time = iter.nth(2).unwrap().parse().unwrap();
|
||||||
let rest_time = iter.nth_back(1).unwrap().parse().unwrap();
|
let rest_time = iter.nth_back(1).unwrap().parse().unwrap();
|
||||||
let distance_travelled = 0;
|
|
||||||
let points = 0;
|
|
||||||
|
|
||||||
Self {
|
Self {
|
||||||
speed,
|
speed,
|
||||||
fly_time,
|
fly_time,
|
||||||
rest_time,
|
rest_time,
|
||||||
distance_travelled,
|
|
||||||
points,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user