Skip to content

Instantly share code, notes, and snippets.

View rhowe's full-sized avatar
💭
Just being

Russell Howe rhowe

💭
Just being
View GitHub Profile
@rhowe
rhowe / 14-optim.sh
Created December 16, 2019 08:11
AOC2019day14-optim
#!/bin/bash -eu
declare -A batchsizes recipes
batchsizes[FUEL]=1
batchsizes[ORE]=1
recipefile=$(dirname "$0")/recipes.sh
parse() {
local reaction
@rhowe
rhowe / 13.sh
Created December 14, 2019 20:48
AOC2019day13part1
#!/bin/bash -eu
getloc() {
case $1 in
0) echo "$2" ;;
1) echo "Can't get location of immediate value" >&2 && exit 1 ;;
2) echo "$((rb + $2))" ;;
esac
}
@rhowe
rhowe / 10-2.sh
Created December 14, 2019 19:05
AOC2019day10part2
#!/bin/bash
set -u
set -o pipefail
inbounds() {
local x=$1 y=$2
return $((x < 0 || x >= cols || y < 0 || y >= rows ? 1 : 0))
}
@rhowe
rhowe / 10.sh
Last active December 10, 2019 23:00
AOC2019day10part1
#!/bin/bash
set -u
set -o pipefail
inbounds() {
local x=$1 y=$2
return $((x < 0 || x >= cols || y < 0 || y >= rows ? 1 : 0))
}
@rhowe
rhowe / 9.sh
Last active December 24, 2019 18:36
AOC2019day9part2
#!/bin/bash -eu
declare -ai program ram
declare -i addrmode1 addrmode2 arg1 arg2 pc=0 rb=0
IFS=, read -r -a program < "$1"
shift
inputs=("$@")
ram=("${program[@]}")
ops=(x '+' '*' x x '-eq' '-ne' '<' '==')
while : ; do
@rhowe
rhowe / 8-2.sh
Created December 8, 2019 10:59
AOC2019day8part2
#!/bin/bash
set -eu
set -o pipefail
input=$1
width=$2
height=$3
cd "$(dirname "$0")"
@rhowe
rhowe / 8.sh
Created December 8, 2019 10:02
AOC2019day8part1
#!/bin/bash
set -eu
input=$(<"$1")
layers=()
width=25
height=6
area=$((width * height))
#!/bin/bash
# This program has some kind of deadlock/race condition
# There are some hacks to let you rerun it and make continual progress so you can:
# while true; do ./7.sh input & sleep 10; kill %1; done
set -eu
getval() {
case $1 in
@rhowe
rhowe / 7-1.sh
Created December 7, 2019 07:38
AOC2019day7part1
#!/bin/bash
set -eu
getval() {
case $1 in
0) echo "${ram[$2]}" ;;
1) echo "$2" ;;
esac
}
@rhowe
rhowe / 6-2.sh
Last active December 6, 2019 19:06
AOC2019day6part2
#!/bin/bash
set -eu
set -o pipefail
orrery=/dev/shm/orrery
rm -rf "$orrery"
mkdir "$orrery"