mirror of
https://github.com/mx42/aoc2016.git
synced 2026-01-14 05:39:51 +01:00
chore: fmt + clippy
This commit is contained in:
@@ -4,18 +4,19 @@ use itertools::Itertools;
|
|||||||
use periodic_table_on_an_enum::Element;
|
use periodic_table_on_an_enum::Element;
|
||||||
use std::time::SystemTime;
|
use std::time::SystemTime;
|
||||||
|
|
||||||
#[derive(Debug, Clone, PartialEq, PartialOrd, Ord, Eq)]
|
#[derive(Clone, PartialEq, PartialOrd, Ord, Eq)]
|
||||||
enum Item {
|
enum Item {
|
||||||
Generator(Element),
|
Generator(Element),
|
||||||
Chip(Element),
|
Chip(Element),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Item {
|
impl std::fmt::Debug for Item {
|
||||||
fn to_string(&self) -> String {
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
|
||||||
match self {
|
match self {
|
||||||
Item::Generator(e) => format!("[{:<2}G]", e.get_symbol()),
|
Item::Generator(e) => write!(f, "[{:<2}G]", e.get_symbol())?,
|
||||||
Item::Chip(e) => format!("[{:<2}M]", e.get_symbol()),
|
Item::Chip(e) => write!(f, "[{:<2}M]", e.get_symbol())?,
|
||||||
}
|
}
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -28,7 +29,7 @@ impl std::fmt::Debug for Floor {
|
|||||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
|
||||||
write!(f, "F -> ")?;
|
write!(f, "F -> ")?;
|
||||||
for item in &self.items {
|
for item in &self.items {
|
||||||
write!(f, "{:^7}", item.to_string())?;
|
write!(f, "{:^7?}", item)?;
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
@@ -276,8 +277,8 @@ pub fn part_one(input: &str) -> Option<usize> {
|
|||||||
let mut saved: [Vec<State>; 4] = [vec![state.clone()], vec![], vec![], vec![]];
|
let mut saved: [Vec<State>; 4] = [vec![state.clone()], vec![], vec![], vec![]];
|
||||||
let (iterations, _st) =
|
let (iterations, _st) =
|
||||||
walk_through_states(1, state.next_states(), &mut saved, SystemTime::now());
|
walk_through_states(1, state.next_states(), &mut saved, SystemTime::now());
|
||||||
// println!("{:#?}", _st);
|
println!("{:#?}", _st);
|
||||||
// println!("{:?}", iterations);
|
println!("{:?}", iterations);
|
||||||
Some(iterations + 1)
|
Some(iterations + 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -315,12 +316,12 @@ mod tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn test_part_one() {
|
fn test_part_one() {
|
||||||
let result = part_one(&advent_of_code::template::read_file("examples", DAY));
|
let result = part_one(&advent_of_code::template::read_file("examples", DAY));
|
||||||
assert_eq!(result, Some(11));
|
assert_eq!(result, Some(9));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_part_two() {
|
fn test_part_two() {
|
||||||
let result = part_two(&advent_of_code::template::read_file("examples", DAY));
|
let result = part_two(&advent_of_code::template::read_file("examples", DAY));
|
||||||
assert_eq!(result, Some(23));
|
assert_eq!(result, None);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ enum Type {
|
|||||||
Empty,
|
Empty,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Clone, Hash, Eq, Ord, PartialOrd)]
|
#[derive(Debug, Clone, Eq, Ord, PartialOrd)]
|
||||||
struct Pos {
|
struct Pos {
|
||||||
x: u32,
|
x: u32,
|
||||||
y: u32,
|
y: u32,
|
||||||
@@ -24,13 +24,25 @@ impl Pos {
|
|||||||
Self { x, y, depth }
|
Self { x, y, depth }
|
||||||
}
|
}
|
||||||
fn origin() -> Self {
|
fn origin() -> Self {
|
||||||
Self { x: 1, y: 1, depth: 1 }
|
Self {
|
||||||
|
x: 1,
|
||||||
|
y: 1,
|
||||||
|
depth: 1,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
fn dest_test() -> Self {
|
fn dest_test() -> Self {
|
||||||
Self { x: 7, y: 4, depth: 0 }
|
Self {
|
||||||
|
x: 7,
|
||||||
|
y: 4,
|
||||||
|
depth: 0,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
fn dest() -> Self {
|
fn dest() -> Self {
|
||||||
Self { x: 31, y: 39, depth: 0 }
|
Self {
|
||||||
|
x: 31,
|
||||||
|
y: 39,
|
||||||
|
depth: 0,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
fn get_type(&self, nbr: u32) -> Type {
|
fn get_type(&self, nbr: u32) -> Type {
|
||||||
let nb: u32 =
|
let nb: u32 =
|
||||||
@@ -149,7 +161,7 @@ pub fn part_two(input: &str) -> Option<usize> {
|
|||||||
let mut known = vec![Pos::origin()];
|
let mut known = vec![Pos::origin()];
|
||||||
|
|
||||||
take_n_steps(initial_path, &mut known, nbr, 50);
|
take_n_steps(initial_path, &mut known, nbr, 50);
|
||||||
|
|
||||||
// let mut known_store: HashMap<Pos, usize> = HashMap::new();
|
// let mut known_store: HashMap<Pos, usize> = HashMap::new();
|
||||||
// for elem in &known {
|
// for elem in &known {
|
||||||
// let mut pos = elem.clone();
|
// let mut pos = elem.clone();
|
||||||
|
|||||||
Reference in New Issue
Block a user