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