mirror of
https://github.com/cupcakearmy/advent-of-code.git
synced 2024-12-23 16:46:32 +00:00
Compare commits
2 Commits
4a876daa71
...
40e3c65a5b
Author | SHA1 | Date | |
---|---|---|---|
40e3c65a5b | |||
58df0a8bbe |
59
README.md
59
README.md
@ -1,5 +1,13 @@
|
||||
# Advent Of Code
|
||||
|
||||
Template repository for Advent of Code. It automatically downloads your puzzle inputs and bootstraps files for the following languages:
|
||||
|
||||
- Typescript
|
||||
- Python
|
||||
- Rust
|
||||
|
||||
Have fun! 🤗🎄
|
||||
|
||||
## Getting started
|
||||
|
||||
New "days" are generated with [`hygen`](https://github.com/jondot/hygen). This will bootstrap code for python and rust. See details about the specifica languages below
|
||||
@ -8,27 +16,66 @@ New "days" are generated with [`hygen`](https://github.com/jondot/hygen). This w
|
||||
# First time setup
|
||||
bun i
|
||||
|
||||
# Generate
|
||||
# Put the Advent of Code token into .env (details below)
|
||||
|
||||
# Generate day
|
||||
bun run gen --year 2022 --day 1
|
||||
```
|
||||
|
||||
## Python
|
||||
> Extracting the Advent of Code cookie
|
||||
>
|
||||
> 1. Navigate to https://adventofcode.com/ and login.
|
||||
> 2. Open dev tools and copy the cookie named `session`.
|
||||
> 3. save `TOKEN=<my-token>` to `.env`.
|
||||
|
||||
## Rust
|
||||
## Languages
|
||||
|
||||
Below are instructions for the specific handling of each language included.
|
||||
|
||||
### Typescript
|
||||
|
||||
Run a single day:
|
||||
|
||||
```bash
|
||||
cargo run --bin 2022-01
|
||||
# Once
|
||||
bun run 2022/01/typescript/main.ts
|
||||
|
||||
# Rerun on change
|
||||
bun run --watch 2022/01/typescript/main.ts
|
||||
```
|
||||
|
||||
Bench a day:
|
||||
### Python
|
||||
|
||||
```bash
|
||||
# Get a python enabled shell, with the latest version
|
||||
poetry shell
|
||||
|
||||
# Run once
|
||||
python 2022/01/python/main.py
|
||||
|
||||
# Rerun on change
|
||||
bunx nodemon 2022/01/python/main.py
|
||||
```
|
||||
|
||||
### Rust
|
||||
|
||||
Run a single day:
|
||||
|
||||
```bash
|
||||
# Once
|
||||
cargo run --bin 2022-01
|
||||
|
||||
# Rerun on change (requires: https://github.com/watchexec/cargo-watch)
|
||||
cargo watch -x 'run --bin 2022-01'
|
||||
```
|
||||
|
||||
Benchmark a day:
|
||||
|
||||
```bash
|
||||
cargo bench --bin 2022-01
|
||||
```
|
||||
|
||||
Bench all days:
|
||||
Benchmark all days:
|
||||
|
||||
```bash
|
||||
cargo bench
|
||||
|
@ -6,9 +6,7 @@ unless_exists: true
|
||||
|
||||
from os.path import join, dirname
|
||||
|
||||
# Day <%= day %>
|
||||
|
||||
# Common
|
||||
# Setup
|
||||
|
||||
|
||||
def read_input(filename):
|
||||
@ -17,7 +15,25 @@ def read_input(filename):
|
||||
return f.read().strip()
|
||||
|
||||
|
||||
test = read_input('test.txt')
|
||||
data = read_input('input.txt')
|
||||
TEST = read_input('test.txt')
|
||||
INPUT = read_input('input.txt')
|
||||
|
||||
# Task
|
||||
|
||||
def part_a(raw: str):
|
||||
pass
|
||||
|
||||
|
||||
def part_b(raw: str):
|
||||
pass
|
||||
|
||||
# Running
|
||||
|
||||
print('1.')
|
||||
print(part_a(TEST))
|
||||
print(part_a(INPUT))
|
||||
|
||||
print('\n2.')
|
||||
print('1.')
|
||||
print(part_b(TEST))
|
||||
print(part_b(INPUT))
|
||||
|
24
_templates/riddle/new/typescript.ejs.t
Normal file
24
_templates/riddle/new/typescript.ejs.t
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
to: <%= dir %>/typescript/main.ts
|
||||
unless_exists: true
|
||||
---
|
||||
import fs from 'node:fs'
|
||||
import path from 'node:path'
|
||||
|
||||
// SETUP
|
||||
const INPUT = fs.readFileSync(path.join(__dirname, '../input.txt'), 'utf-8').trim()
|
||||
const TEST = fs.readFileSync(path.join(__dirname, '../test.txt'), 'utf-8').trim()
|
||||
|
||||
// TASK
|
||||
|
||||
function partA(input: string) {}
|
||||
|
||||
function partB(input: string) {}
|
||||
|
||||
console.log('Part A:')
|
||||
partA(TEST)
|
||||
partA(INPUT)
|
||||
|
||||
console.log('Part B:')
|
||||
partA(TEST)
|
||||
partB(INPUT)
|
@ -1,9 +1,14 @@
|
||||
{
|
||||
"name": "advent-of-code",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"gen": "bun hygen riddle new"
|
||||
},
|
||||
"dependencies": {
|
||||
"@tsconfig/strictest": "^2.0.2",
|
||||
"axios": "^1.6.0",
|
||||
"hygen": "^6.2.11"
|
||||
"bun-types": "latest",
|
||||
"hygen": "^6.2.11",
|
||||
"typescript": "^5.0.0"
|
||||
}
|
||||
}
|
||||
|
12
tsconfig.json
Normal file
12
tsconfig.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"extends": ["@tsconfig/strictest"],
|
||||
"compilerOptions": {
|
||||
"lib": ["ESNext"],
|
||||
"module": "esnext",
|
||||
"target": "esnext",
|
||||
"moduleResolution": "bundler",
|
||||
"moduleDetection": "force",
|
||||
"noEmit": true,
|
||||
"types": ["bun-types"]
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user