aoc-2020

Version, currently master branch1 version
  • master branchlatestFeb 9, 2021

github.com/smores56/aoc-2020

My Advent of Code 2020 solutions, written in Crystal.

0 stars
0 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  aoc-2020:
    github: smores56/aoc-2020
    branch: master

master is a branch, not a release, so this tracks it rather than pinning a version.

Then run:

shards install

shard.yml

Crystal
0.35.1
License
MIT
Author
Sam Mohr
Target
  • aoc-2020 from src/aoc-2020.cr

Dependencies

This version declares no dependencies.

README

Advent of Code 2020

My entry for the Advent of Code for 2020, written entirely in Crystal.

Installation

You only need Crystal installed to run these solutions.

Setup

This solution takes inspiration from the cargo-aoc Rust plugin that I used for the 2018 Advent of Code and automatically downloads and provides the input to the solution implementations using the AoC API.

To setup, make sure that you are logged in to the Advent of Code website, and then copy your session cookie by opening the Network Inspector of your web browser and looking at the "Cookies" tab of the inspector. Then write the session token to a file in this repo named .session however you like; something like this should work:

$ cd aoc-2020/ && xsel > .session

Once this is done, this application will automatically download input data to the .data folder (which it will create automatically) if it is missing.

Usage

Once you have setup by installing Crystal and saving your session token to the .session file, you can run any solution from the repo with

$ crystal run src/aoc-2020.cr [--day <DAY>] [--release]

By default, this application will use the current day of the month (e.g. if it is December 8th, day will default to 8). Crystal assumes debug mode for faster compilation, but if you need to run a solution faster because it is computationally expensive, you can add the --release flag to improve runtime speeds at the cost of compilation time.

Development

All of the days are already templated out, so you just have to pick the one you are working on and start writing!

Contributors