mirror of
https://github.com/mx42/aoc2024.rs.git
synced 2026-01-14 13:59:52 +01:00
chore: clippy
This commit is contained in:
@@ -52,8 +52,8 @@ impl Pos {
|
||||
struct State {
|
||||
map: HashMap<Pos, char>,
|
||||
start: Pos,
|
||||
end: Pos,
|
||||
size: Pos,
|
||||
// end: Pos,
|
||||
// size: Pos,
|
||||
}
|
||||
|
||||
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
|
||||
@@ -116,13 +116,12 @@ impl Path {
|
||||
impl TryFrom<&str> for State {
|
||||
type Error = ();
|
||||
fn try_from(input: &str) -> Result<State, Self::Error> {
|
||||
let input = input.lines().collect::<Vec<_>>();
|
||||
let size = Pos {
|
||||
x: input[0].len(),
|
||||
y: input.len(),
|
||||
};
|
||||
let input: Vec<(Pos, char)> = input
|
||||
.iter()
|
||||
// let size = Pos {
|
||||
// x: input[0].len(),
|
||||
// y: input.len(),
|
||||
// };
|
||||
// let input: Vec<(Pos, char)> = input
|
||||
let input: Vec<_> = input.lines()
|
||||
.enumerate()
|
||||
.flat_map(|(y, l)| {
|
||||
l.chars().enumerate().filter_map(move |(x, c)| {
|
||||
@@ -135,7 +134,7 @@ impl TryFrom<&str> for State {
|
||||
})
|
||||
.collect();
|
||||
let start = input.iter().find(|(_, c)| *c == 'S').ok_or(())?.0.clone();
|
||||
let end = input.iter().find(|(_, c)| *c == 'E').ok_or(())?.0.clone();
|
||||
// let end = input.iter().find(|(_, c)| *c == 'E').ok_or(())?.0.clone();
|
||||
let mut map = HashMap::new();
|
||||
for (k, v) in input.into_iter() {
|
||||
map.insert(k, v);
|
||||
@@ -143,8 +142,8 @@ impl TryFrom<&str> for State {
|
||||
Ok(State {
|
||||
map,
|
||||
start,
|
||||
end,
|
||||
size,
|
||||
// end,
|
||||
// size,
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -176,24 +175,24 @@ impl State {
|
||||
all_paths
|
||||
}
|
||||
|
||||
fn print_path(&self, path: &Path) {
|
||||
println!();
|
||||
println!("Path score: {}", path.score());
|
||||
for y in 0..self.size.y {
|
||||
for x in 0..self.size.x {
|
||||
let p = Pos { x, y };
|
||||
if path.have_visited(&p) {
|
||||
print!("o");
|
||||
} else if self.map.contains_key(&p) {
|
||||
print!(" ");
|
||||
} else {
|
||||
print!("#");
|
||||
}
|
||||
}
|
||||
println!();
|
||||
}
|
||||
println!()
|
||||
}
|
||||
// fn print_path(&self, path: &Path) {
|
||||
// println!();
|
||||
// println!("Path score: {}", path.score());
|
||||
// for y in 0..self.size.y {
|
||||
// for x in 0..self.size.x {
|
||||
// let p = Pos { x, y };
|
||||
// if path.have_visited(&p) {
|
||||
// print!("o");
|
||||
// } else if self.map.contains_key(&p) {
|
||||
// print!(" ");
|
||||
// } else {
|
||||
// print!("#");
|
||||
// }
|
||||
// }
|
||||
// println!();
|
||||
// }
|
||||
// println!()
|
||||
// }
|
||||
}
|
||||
|
||||
pub fn part_one(input: &str) -> Option<u32> {
|
||||
@@ -204,7 +203,7 @@ pub fn part_one(input: &str) -> Option<u32> {
|
||||
st.get_paths().iter().map(|p| p.score()).min()
|
||||
}
|
||||
|
||||
pub fn part_two(input: &str) -> Option<u32> {
|
||||
pub fn part_two(_input: &str) -> Option<u32> {
|
||||
None
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ impl State {
|
||||
);
|
||||
let two: i32 = 2;
|
||||
let res = self.registers[0].checked_div(two.pow(combo as u32))?;
|
||||
let mut new_registers = self.registers.clone();
|
||||
let mut new_registers = self.registers;
|
||||
new_registers[reg] = res;
|
||||
Some(Self {
|
||||
registers: new_registers,
|
||||
@@ -30,7 +30,7 @@ impl State {
|
||||
fn bxl(&self, combo: i32) -> Option<Self> {
|
||||
println!("BXL reg 1 ^ {} => reg 1", combo);
|
||||
let res = self.registers[1] ^ combo;
|
||||
let mut new_registers = self.registers.clone();
|
||||
let mut new_registers = self.registers;
|
||||
new_registers[1] = res;
|
||||
Some(Self {
|
||||
registers: new_registers,
|
||||
@@ -41,7 +41,7 @@ impl State {
|
||||
|
||||
fn bst(&self, combo: i32) -> Option<Self> {
|
||||
println!("BST {} % 8 => reg 1", combo);
|
||||
let mut new_registers = self.registers.clone();
|
||||
let mut new_registers = self.registers;
|
||||
new_registers[1] = combo % 8;
|
||||
Some(Self {
|
||||
registers: new_registers,
|
||||
@@ -68,7 +68,7 @@ impl State {
|
||||
|
||||
fn bxc(&self) -> Option<Self> {
|
||||
println!("BXC reg 1 ^ reg 2 => reg 1");
|
||||
let mut new_registers = self.registers.clone();
|
||||
let mut new_registers = self.registers;
|
||||
new_registers[1] = self.registers[1] ^ self.registers[2];
|
||||
Some(Self {
|
||||
registers: new_registers,
|
||||
@@ -101,16 +101,13 @@ impl State {
|
||||
}
|
||||
let opcode = self.memory.get(self.ptr).unwrap();
|
||||
let combo = *self.memory.get(self.ptr + 1).unwrap();
|
||||
if combo < 0 || combo > 6 {
|
||||
return None;
|
||||
}
|
||||
let combo_value = match combo {
|
||||
0..=3 => combo,
|
||||
4 => self.registers[0],
|
||||
5 => self.registers[1],
|
||||
6 => self.registers[2],
|
||||
_ => panic!(),
|
||||
};
|
||||
0..=3 => Some(combo),
|
||||
4 => Some(self.registers[0]),
|
||||
5 => Some(self.registers[1]),
|
||||
6 => Some(self.registers[2]),
|
||||
_ => None,
|
||||
}?;
|
||||
match opcode {
|
||||
0 => self.dv(0, combo_value),
|
||||
1 => self.bxl(combo_value),
|
||||
@@ -170,7 +167,7 @@ pub fn part_one(input: &str) -> Option<String> {
|
||||
State::try_from(input).ok().map(|s| s.run().get_output())
|
||||
}
|
||||
|
||||
pub fn part_two(input: &str) -> Option<u32> {
|
||||
pub fn part_two(_input: &str) -> Option<u32> {
|
||||
None
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user