Compare commits
2 commits
53816fed73
...
d394c3211c
Author | SHA1 | Date | |
---|---|---|---|
|
d394c3211c | ||
|
0dbc07cc94 |
1 changed files with 7 additions and 6 deletions
|
@ -6,7 +6,7 @@ use std::{
|
||||||
use winnow::{
|
use winnow::{
|
||||||
PResult, Parser,
|
PResult, Parser,
|
||||||
ascii::{newline, till_line_ending},
|
ascii::{newline, till_line_ending},
|
||||||
combinator::{alt, repeat, separated},
|
combinator::{alt, opt, repeat, separated},
|
||||||
};
|
};
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
@ -36,8 +36,9 @@ fn pt2(input: &str) -> usize {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let board = Board::new(input);
|
||||||
for loc in trace {
|
for loc in trace {
|
||||||
board = Board::new(input);
|
let mut board = board.clone();
|
||||||
let mut steps = HashSet::new();
|
let mut steps = HashSet::new();
|
||||||
board.set(loc, Cell::Obstacle);
|
board.set(loc, Cell::Obstacle);
|
||||||
steps.insert(board.guard);
|
steps.insert(board.guard);
|
||||||
|
@ -230,10 +231,10 @@ fn parse(input: &str) -> PResult<Board> {
|
||||||
let mut gdir = Dir::N;
|
let mut gdir = Dir::N;
|
||||||
let mut loc = Loc(0, 0);
|
let mut loc = Loc(0, 0);
|
||||||
|
|
||||||
let mut input = input;
|
let (cells, _): (Vec<Vec<Cell>>, _) =
|
||||||
let cells: Vec<Vec<Cell>> = separated(1.., parse_line, newline)
|
winnow::combinator::seq!(separated(1.., parse_line, newline), opt(newline))
|
||||||
.parse_next(&mut input)
|
.parse(input)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
for (row, line) in cells.iter().enumerate() {
|
for (row, line) in cells.iter().enumerate() {
|
||||||
for (col, cell) in line.iter().enumerate() {
|
for (col, cell) in line.iter().enumerate() {
|
||||||
|
|
Loading…
Reference in a new issue