summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRobby Zambito <contact@robbyzambito.me>2025-09-03 17:21:08 -0400
committerRobby Zambito <contact@robbyzambito.me>2025-09-03 17:23:10 -0400
commitb6042af64851d332f5c7ffc0b4a04997a1376dd4 (patch)
treec5f489cbf98d8c9bf772faa756624bd65fbe4aee /src
parent2a6552fe76df17e76ee77d6d552e33e1fa41fa11 (diff)
Upgrade to zig 0.15.1HEADmaster
Diffstat (limited to 'src')
-rw-r--r--src/main.zig20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/main.zig b/src/main.zig
index 496d14f..341bc62 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -2,7 +2,7 @@ const SudokuSolver = struct {
const join = std.simd.join;
// Each cell exists in memory three times.
// This makes it easy to compare a guess against all relevant cells simultaneously.
- rows: [9]@Vector(9, u8),
+ rows: [9]@Vector(9, u8),
cols: [9]@Vector(9, u8),
boxes: [9]@Vector(9, u8),
@@ -116,7 +116,7 @@ const SudokuSolver = struct {
return (row % 3) * 3 + col % 3;
}
- fn display(self: SudokuSolver, writer: std.io.AnyWriter) !void {
+ fn display(self: SudokuSolver, writer: *std.Io.Writer) !void {
for (self.rows, 0..) |row, i| {
// Can't loop over row directly?
for (@as([9]u8, row), 0..) |cell, j| {
@@ -130,18 +130,24 @@ const SudokuSolver = struct {
try writer.print("{s}\n", .{"-" ** 21});
}
}
+ try writer.flush();
}
};
pub fn main() !void {
var board: [9][9]u8 = undefined;
- const stdout = std.io.getStdOut().writer().any();
- const stdin = std.io.getStdIn().reader().any();
+ var stdout_buffer: [1024]u8 = undefined;
+ var stdout_writer = std.fs.File.stdout().writer(&stdout_buffer);
+ const stdout = &stdout_writer.interface;
+
+ var stdin_buffer: [1024]u8 = undefined;
+ var stdin_reader = std.fs.File.stdin().reader(&stdin_buffer);
+ const stdin = &stdin_reader.interface;
for (0..9) |row| {
for (0..9) |col| {
- const byte = try stdin.readByte();
+ const byte = try stdin.takeByte();
board[row][col] = try std.fmt.charToDigit(byte, 10);
}
}
@@ -228,7 +234,9 @@ test "Solve easy board" {
var solver: SudokuSolver = SudokuSolver.init(board) catch unreachable;
- const stderr = std.io.getStdErr().writer().any();
+ var stderr_buffer: [1024]u8 = undefined;
+ var stderr_writer = std.fs.File.stderr().writer(&stderr_buffer);
+ const stderr = &stderr_writer.interface;
std.debug.print("input:\n", .{});
try solver.display(stderr);
std.debug.print("output:\n", .{});