GitXplorerGitXplorer
m

aoc-2024

public
1 stars
0 forks
0 issues

Commits

List of commits on branch main.
Unverified
1d3fc72cf35f7239f4efc2506178391dc29b51f1

cleaning

mmackoj committed a month ago
Unverified
19d64146841ffae0d817c705e87061676d79d738

cleaning

mmackoj committed a month ago
Unverified
cba0647abbbdbb3783cccee517fa16468cdaf042

cleaning

mmackoj committed a month ago
Unverified
c77baab8ffcfef047575363a29927330f3dea4f5

cleaning

mmackoj committed a month ago
Unverified
3a9a7277349d8f484a147242d0bb8215ee6b7cbd

cleaning

mmackoj committed a month ago
Unverified
b94fd201d5f57b3942185b15965a5fa284642da9

day 7

mmackoj committed a month ago

README

The README file for this repository.

Advent of Code Swift Starter Project

Language

Daily programming puzzles at Advent of Code, by Eric Wastl. This is a small example starter project for building Advent of Code solutions.

Usage

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:

Challenges

The challenges assume three files (replace 00 with the day of the challenge).

  • Sources/Data/Day00.txt: the input data provided for the challenge
  • Sources/Day00.swift: the code to solve the challenge
  • Tests/Day00.swift: any unit tests that you want to include

To start a new day's challenge, make a copy of these files, updating 00 to the day number.

// Add each new day implementation to this array:
let allChallenges: [any AdventDay] = [
-  Day00()
+  Day00(),
+  Day01(),
]

Then implement part 1 and 2. The AdventOfCode.swift file controls which challenge is run with swift run. Add your new type to its allChallenges array. By default it runs the most recent challenge.

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.

Linting and Formatting

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.