update readme
This commit is contained in:
parent
06de6c967d
commit
1676b57c8e
76
README.md
76
README.md
|
@ -1,3 +1,79 @@
|
|||
# haskal's advent of code 2020 solutions
|
||||
|
||||
sharks
|
||||
|
||||
## a guide to this repo
|
||||
|
||||
### `(pregexp #px"([0-9]+).rkt" (list _ day))`
|
||||
|
||||
these are the solution files for `day`. some of them have two versions, click on the history button
|
||||
to view both. the first version is the original solution i wrote, and the second version contains
|
||||
some cleanup to make the code nicer. day 1 doesn't have an original version because i didn't commit
|
||||
it. other days may not have a cleaned up version if i didn't think any cleanup needed to be done
|
||||
|
||||
the code aims to be as efficient as needed, but prioritizes readability and conciseness. i want to
|
||||
create a good demo of using racket and its available features to solve programming problems quickly
|
||||
and cleanly
|
||||
|
||||
### `(or "LICENSE" "COPYING")`
|
||||
|
||||
the license is GPL 3.0 or later, including solutions and scripts
|
||||
|
||||
### `"inputs/"`
|
||||
|
||||
an empty folder, this is where scripts put input files
|
||||
|
||||
### `"scripts/aoc-lib.rkt"`
|
||||
|
||||
this is a collection of functions for interacting with the AoC server to fetch challenges, submit
|
||||
answers, get leaderboards, and track progress (in a local file called `.status.rktd`)
|
||||
|
||||
scripts expect some environment variables to be present
|
||||
- `AOC_SESSION`: a session token for your account. log in, then copy the `session` cookie
|
||||
- `AOC_YEAR`: the challenge year
|
||||
- `AOC_LEADERBOARD`: your leaderboard ID, used for plot
|
||||
|
||||
### `"scripts/aoc.rkt"`
|
||||
|
||||
this is included by the template and goes into every solution by default. it exports a function to
|
||||
report answers to the challenge server, and useful libraries for challenge code to use
|
||||
|
||||
### `"scripts/countdown"`
|
||||
|
||||
counts down to the next challenge then initializes it from a template, downloads the input file, and
|
||||
displays the challenge text in the terminal
|
||||
|
||||
### `"scripts/get-challenge"`
|
||||
|
||||
a CLI application for viewing challenges. takes 1 argument for day. displays somewhat styled
|
||||
challenge text to the terminal (requires 256color)
|
||||
|
||||
### `"scripts/get-input"`
|
||||
|
||||
downloads the input for day `n` to `inputs/n`
|
||||
|
||||
### `"scripts/make-day"`
|
||||
|
||||
creates a new solution file from template and downloads the input for a given day
|
||||
|
||||
### `"scripts/plot"`
|
||||
|
||||
plots the scores of everyone on a private leaderboard over time, defaults to displaying the plot in
|
||||
a window
|
||||
|
||||
### `(or "scripts/plot.scrbl" "scripts/plot.css")`
|
||||
|
||||
define a webpage (rendered with scribble) to display the plot generated by `scripts/plot`. you can
|
||||
render it with `scribble --dest <dest> --style plot.css plot.scrbl`
|
||||
|
||||
the plot for my leaderboard is available at <https://joan.awoo.systems/aoc2020/>
|
||||
|
||||
### `"scripts/submit-answer"`
|
||||
|
||||
takes a day, level, and answer and submits it. returns what the server responded
|
||||
|
||||
|
||||
### `"scripts/template.rktrkt"`
|
||||
|
||||
a template (in scribble) defining the solution code for a day. should be templated with the variable
|
||||
`day` specifying the day
|
||||
|
|
Loading…
Reference in New Issue