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