Initial Template

This commit is contained in:
Martin Wickham 2020-11-26 15:46:03 -06:00
commit 6b9827d26a
32 changed files with 855 additions and 0 deletions

16
.gitattributes vendored Normal file
View file

@ -0,0 +1,16 @@
# See https://git-scm.com/docs/gitattributes
# See https://help.github.com/articles/dealing-with-line-endings/
# Default behavior, if core.autocrlf is unset.
* text=auto
# Files to be converted to native line endings on checkout.
*.cpp text
*.h text
# Text files to always have CRLF (dos) line endings on checkout.
*.bat text eol=crlf
# Text files to always have LF (unix) line endings on checkout.
*.sh text eol=lf
*.zig text eol=lf

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
zig-cache/
build_runner.zig

308
.vscode/launch.json vendored Normal file
View file

@ -0,0 +1,308 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "day 01",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day01.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 01",
},
{
"name": "day 02",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day02.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 02",
},
{
"name": "day 03",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day03.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 03",
},
{
"name": "day 04",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day04.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 04",
},
{
"name": "day 05",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day05.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 05",
},
{
"name": "day 06",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day06.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 06",
},
{
"name": "day 07",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day07.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 07",
},
{
"name": "day 08",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day08.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 08",
},
{
"name": "day 09",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day09.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 09",
},
{
"name": "day 10",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day10.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 10",
},
{
"name": "day 11",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day11.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 11",
},
{
"name": "day 12",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day12.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 12",
},
{
"name": "day 13",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day13.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 13",
},
{
"name": "day 14",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day14.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 14",
},
{
"name": "day 15",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day15.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 15",
},
{
"name": "day 16",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day16.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 16",
},
{
"name": "day 17",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day17.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 17",
},
{
"name": "day 18",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day18.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 18",
},
{
"name": "day 19",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day19.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 19",
},
{
"name": "day 20",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day20.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 20",
},
{
"name": "day 21",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day21.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 21",
},
{
"name": "day 22",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day22.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 22",
},
{
"name": "day 23",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day23.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 23",
},
{
"name": "day 24",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day24.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 24",
},
{
"name": "day 25",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/zig-cache/bin/day25.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "build day 25",
},
]
}

225
.vscode/tasks.json vendored Normal file
View file

@ -0,0 +1,225 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build day 01",
"type": "shell",
"command": "zig",
"args": ["build", "install_day01"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 02",
"type": "shell",
"command": "zig",
"args": ["build", "install_day02"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 03",
"type": "shell",
"command": "zig",
"args": ["build", "install_day03"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 04",
"type": "shell",
"command": "zig",
"args": ["build", "install_day04"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 05",
"type": "shell",
"command": "zig",
"args": ["build", "install_day05"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 06",
"type": "shell",
"command": "zig",
"args": ["build", "install_day06"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 07",
"type": "shell",
"command": "zig",
"args": ["build", "install_day07"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 08",
"type": "shell",
"command": "zig",
"args": ["build", "install_day08"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 09",
"type": "shell",
"command": "zig",
"args": ["build", "install_day09"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 10",
"type": "shell",
"command": "zig",
"args": ["build", "install_day10"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 11",
"type": "shell",
"command": "zig",
"args": ["build", "install_day11"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 12",
"type": "shell",
"command": "zig",
"args": ["build", "install_day12"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 13",
"type": "shell",
"command": "zig",
"args": ["build", "install_day13"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 14",
"type": "shell",
"command": "zig",
"args": ["build", "install_day14"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 15",
"type": "shell",
"command": "zig",
"args": ["build", "install_day15"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 16",
"type": "shell",
"command": "zig",
"args": ["build", "install_day16"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 17",
"type": "shell",
"command": "zig",
"args": ["build", "install_day17"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 18",
"type": "shell",
"command": "zig",
"args": ["build", "install_day18"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 19",
"type": "shell",
"command": "zig",
"args": ["build", "install_day19"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 20",
"type": "shell",
"command": "zig",
"args": ["build", "install_day20"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 21",
"type": "shell",
"command": "zig",
"args": ["build", "install_day21"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 22",
"type": "shell",
"command": "zig",
"args": ["build", "install_day22"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 23",
"type": "shell",
"command": "zig",
"args": ["build", "install_day23"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 24",
"type": "shell",
"command": "zig",
"args": ["build", "install_day24"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "build day 25",
"type": "shell",
"command": "zig",
"args": ["build", "install_day25"], // add -Drelease-safe=true or -Drelease-fast=true to optimize
"problemMatcher": [],
"group": "build",
},
{
"label": "test",
"type": "shell",
"command": "zig",
"args": ["build", "test"],
"problemMatcher": [],
"group": {
"kind": "test",
"isDefault": true
}
},
{
"label": "format",
"type": "shell",
"command": "zig",
"args": ["fmt", "${file}"],
"problemMatcher": [],
},
]
}

24
LICENSE Normal file
View file

@ -0,0 +1,24 @@
Copyright (c) 2020 Martin Wickham
Dear Imgui is Copyright (c) 2014-2020 Omar Cornut
cimgui is Copyright (c) 2015 Stephan Dilly
cgltf is Copyright (c) 2018 Johannes Kuhlmann
ENet is Copyright (c) 2002-2020 Lee Salzman
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

11
README.md Normal file
View file

@ -0,0 +1,11 @@
# Advent Of Code Zig Template
This repo provides a template for Advent of Code participants using Zig. It contains a main file for each day, a build.zig file set up with targets for each day, and Visual Studio Code files for debugging.
### How to use this template:
The src/ directory contains a main file for each day. Put your code there. The build command `zig build dayXX [target and mode options] -- [program args]` will build and run the specified day. You can also use `zig build install_dayXX [target and mode options]` to build the executable for a day and put it into `zig-cache/bin` without executing it. By default this template does not link libc, but you can set `should_link_libc` to `true` in build.zig to change that. If you have files with tests, add those files to the list of test files in build.zig. The command `zig build test` will run tests in all of these files.
This repo also contains Visual Studio Code project files for debugging. These are meant to work with the C/C++ plugin. There is a debug configuration for each day. By default all days are built in debug mode, but this can be changed by editing `.vscode/tasks.json` if you have a need for speed.
If you would like to contribute project files for other development environments, please send a PR.

69
build.zig Normal file
View file

@ -0,0 +1,69 @@
const std = @import("std");
const Builder = std.build.Builder;
const LibExeObjStep = std.build.LibExeObjStep;
// set this to true to link libc
const should_link_libc = false;
const test_files = [_][]const u8 {
// list any zig files with tests here
};
fn linkObject(b: *Builder, obj: *LibExeObjStep) void {
if (should_link_libc) obj.linkLibC();
// Add linking for packages or third party libraries here
}
pub fn build(b: *Builder) void {
// Standard target options allows the person running `zig build` to choose
// what target to build for. Here we do not override the defaults, which
// means any target is allowed, and the default is native. Other options
// for restricting supported target set are available.
const target = b.standardTargetOptions(.{});
// Standard release options allow the person running `zig build` to select
// between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall.
const mode = b.standardReleaseOptions();
// Set up an exe for each day
comptime var day = 1;
inline while (day <= 25) : (day += 1) {
@setEvalBranchQuota(100000); // this comptimePrint is pretty expensive
const dayString = comptime std.fmt.comptimePrint("day{:0>2}", .{ day });
const zigFile = "src/" ++ dayString ++ ".zig";
const exe = b.addExecutable(dayString, zigFile);
exe.setTarget(target);
exe.setBuildMode(mode);
linkObject(b, exe);
exe.install();
const install_cmd = b.addInstallArtifact(exe);
const install_step = b.step("install_" ++ dayString, "Install " ++ dayString ++ ".exe");
install_step.dependOn(&install_cmd.step);
const run_cmd = exe.run();
run_cmd.step.dependOn(&install_cmd.step);
if (b.args) |args| {
run_cmd.addArgs(args);
}
const run_step = b.step(dayString, "Run " ++ dayString);
run_step.dependOn(&run_cmd.step);
}
// Set up a step to run all tests
const test_step = b.step("test", "Run all tests");
for (test_files) |file| {
const test_cmd = b.addTest(file);
test_cmd.setTarget(target);
test_cmd.setBuildMode(mode);
linkObject(b, test_cmd);
test_step.dependOn(&test_cmd.step);
}
}

8
src/day01.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day02.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day03.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day04.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day05.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day06.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day07.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day08.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day09.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day10.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day11.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day12.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day13.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day14.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day15.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day16.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day17.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day18.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day19.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day20.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day21.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day22.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day23.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day24.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}

8
src/day25.zig Normal file
View file

@ -0,0 +1,8 @@
const std = @import("std");
const Allocator = std.mem.Allocator;
const assert = std.debug.assert;
const print = std.debug.print;
pub fn main() !void {
}