1
0

made coordinate public

This commit is contained in:
2024-12-06 15:36:07 +01:00
parent 2636f4a6c8
commit 2d3443907d
2 changed files with 5 additions and 6 deletions

View File

@@ -3,7 +3,7 @@ use std::{
fs::read_to_string, fs::read_to_string,
}; };
use crate::utils::grid::Grid; use crate::utils::grid::{Coord, Grid};
pub fn day_main() { pub fn day_main() {
let input = read_to_string("input/day06.txt").unwrap(); let input = read_to_string("input/day06.txt").unwrap();
@@ -13,7 +13,6 @@ pub fn day_main() {
} }
type RiddleResult = usize; type RiddleResult = usize;
type Point = (i64, i64);
fn part1(input: &str) -> RiddleResult { fn part1(input: &str) -> RiddleResult {
let (m, pos) = parse(input); let (m, pos) = parse(input);
@@ -23,7 +22,7 @@ fn part1(input: &str) -> RiddleResult {
visited.len() visited.len()
} }
fn get_visited(m: &Grid<char>, mut pos: Point, mut dir: char) -> HashSet<Point> { fn get_visited(m: &Grid<char>, mut pos: Coord, mut dir: char) -> HashSet<Coord> {
let mut visited = HashSet::new(); let mut visited = HashSet::new();
while m.contains_key(pos) { while m.contains_key(pos) {
let (x, y) = pos; let (x, y) = pos;
@@ -60,7 +59,7 @@ fn part2(input: &str) -> RiddleResult {
.count() .count()
} }
fn parse(input: &str) -> (Grid<char>, Point) { fn parse(input: &str) -> (Grid<char>, Coord) {
let mut m = HashMap::new(); let mut m = HashMap::new();
let mut pos = None; let mut pos = None;
input.lines().enumerate().for_each(|(y, line)| { input.lines().enumerate().for_each(|(y, line)| {
@@ -78,7 +77,7 @@ fn parse(input: &str) -> (Grid<char>, Point) {
(Grid::from(m), pos.unwrap()) (Grid::from(m), pos.unwrap())
} }
fn is_loop(m: &Grid<char>, block: Point, mut pos: Point, mut dir: char) -> bool { fn is_loop(m: &Grid<char>, block: Coord, mut pos: Coord, mut dir: char) -> bool {
let mut visited = HashSet::new(); let mut visited = HashSet::new();
loop { loop {
let (x, y) = pos; let (x, y) = pos;

View File

@@ -10,7 +10,7 @@ pub struct Grid<T> {
content: Vec<T>, content: Vec<T>,
} }
type Coord = (i64, i64); pub type Coord = (i64, i64);
impl<T> Grid<T> { impl<T> Grid<T> {
pub fn from(mut source: HashMap<Coord, T>) -> Grid<T> { pub fn from(mut source: HashMap<Coord, T>) -> Grid<T> {