Skip to content

Commit b2e55d2

Browse files
committed
Use more consistent naming scheme
1 parent f41b43c commit b2e55d2

File tree

1 file changed

+12
-15
lines changed

1 file changed

+12
-15
lines changed

day06/src/day06.zig

+12-15
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ const Map = std.AutoHashMap;
77
const String = []u8;
88
const Matrix = List(String);
99
const Vec2 = struct { x: i32, y: i32 };
10-
const Guard = struct { pos: Vec2, dir: Vec2 };
10+
const State = struct { pos: Vec2, dir: Vec2 };
1111
const Walk = struct { visited: Set(Vec2), loops: bool };
1212

1313
fn Set(comptime T: type) type {
@@ -30,7 +30,7 @@ fn turnRight(dir: Vec2) Vec2 {
3030
return .{ .x = -dir.y, .y = dir.x };
3131
}
3232

33-
fn step(guard: Guard) Guard {
33+
fn step(guard: State) State {
3434
return .{ .pos = vecAdd(guard.pos, guard.dir), .dir = guard.dir };
3535
}
3636

@@ -52,7 +52,7 @@ fn parseDirection(c: u8) ?Vec2 {
5252
};
5353
}
5454

55-
fn findStart(matrix: Matrix) Guard {
55+
fn findStart(matrix: Matrix) State {
5656
for (0..height(matrix)) |y| {
5757
for (0..width(matrix)) |x| {
5858
const dir = parseDirection(matrix.items[y][x]);
@@ -64,21 +64,18 @@ fn findStart(matrix: Matrix) Guard {
6464
std.debug.panic("Could not find start", .{});
6565
}
6666

67-
fn walkFrom(start: Guard, matrix: Matrix, extraObstacle: ?Vec2) !Walk {
68-
var visited = Set(Vec2).init(allocator);
69-
var visitedGuards = Set(Guard).init(allocator);
67+
fn walkFrom(start: State, matrix: Matrix, extraObstacle: ?Vec2) !Walk {
68+
var visitedPositions = Set(Vec2).init(allocator);
69+
var visitedStates = Set(State).init(allocator);
70+
defer visitedStates.deinit();
7071
var guard = start;
7172

72-
defer {
73-
visitedGuards.deinit();
74-
}
75-
7673
while (inBounds(guard.pos, matrix)) {
77-
if (visitedGuards.contains(guard)) {
78-
return .{ .visited = visited, .loops = true };
74+
if (visitedStates.contains(guard)) {
75+
return .{ .visited = visitedPositions, .loops = true };
7976
}
80-
try visited.put(guard.pos, {});
81-
try visitedGuards.put(guard, {});
77+
try visitedPositions.put(guard.pos, {});
78+
try visitedStates.put(guard, {});
8279
const next = step(guard);
8380
if (inBounds(next.pos, matrix) and ((extraObstacle != null and std.meta.eql(next.pos, extraObstacle.?)) or get(next.pos, matrix) == '#')) {
8481
guard.dir = turnRight(guard.dir);
@@ -87,7 +84,7 @@ fn walkFrom(start: Guard, matrix: Matrix, extraObstacle: ?Vec2) !Walk {
8784
}
8885
}
8986

90-
return .{ .visited = visited, .loops = false };
87+
return .{ .visited = visitedPositions, .loops = false };
9188
}
9289

9390
pub fn main() !u8 {

0 commit comments

Comments
 (0)