Daily programming puzzles at Advent of Code, by Eric Wastl. This is a small example starter project for building Advent of Code solutions.
Day25: ☆☆
Day24: ☆☆
Day23: ☆☆
Day22: ☆☆
Day21: ☆☆
Day20: ☆☆
Day20: ☆☆
Day19: ☆☆
Day18: ☆☆
Day17: ☆☆
Day16: ☆☆
Day15: ☆☆
Day14: ☆☆
Day13: ☆☆
Day12: ☆☆
Day11: ☆☆
Day10: ☆☆
Day09: ☆☆
Day08: ☆☆
Day07: ★★
Day06: ★★
Day05: ★★
Day04: ★★
Day03: ★★
Day02: ★★
Day01: ★★
Swift comes with Xcode, or you can install it on a supported macOS, Linux, or Windows platform.
If you're using Xcode, you can open this project by choosing File / Open and select the parent directory.
If you prefer the command line, you can run the test suite with swift test
,
and run the output with swift run
.
If you're using Visual Studio Code to edit, you might find these Swift extensions useful:
- Swift (provides core language edit / debug / test features)
- apple-swift-format (supports the swift-format package)
The challenges assume three files (replace 00 with the day of the challenge).
Data/Day00.txt
: the input data provided for the challengeSources/Day00.swift
: the code to solve the challengeTests/Day00.swift
: any unit tests that you want to include
To start a new day's challenge, make a copy of these files and update as
necessary. The AdventOfCode.swift
file controls which day's challenge is run
with swift run
. By default that runs the most recent challenge in the package.
To supply command line arguments use swift run AdventOfCode
. For example,
swift run -c release AdventOfCode --benchmark 3
builds the binary with full
optimizations, and benchmarks the challenge for day 3.
Challenge source code can be linted and formatted automatically using the
included dependency on swift-format
.
Lint source code with the following command:
$ swift package lint-source-code
Format source code with the following command:
$ swift package format-source-code
Plugin ‘Format Source Code’ wants permission to write to the package directory.
Stated reason: “This command formats the Swift source files”.
Allow this plugin to write to the package directory? (yes/no)
To avoid the interactive prompt when formatting source code, use the
--allow-writing-to-package-directory
flag.
$ swift package format-source-code --allow-writing-to-package-directory
swift-format will use the built-in default style to lint and format code. A
.swift-format
configuration file can be used to customize the style used, see
Configuration
for more details.