Giter VIP home page Giter VIP logo

advent-of-code-2023's Introduction

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 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.

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.

advent-of-code-2023's People

Contributors

binho avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.