Skip to content

Instantly share code, notes, and snippets.

View mscha's full-sized avatar

Michael Schaap mscha

View GitHub Profile
@mscha
mscha / aoc07b
Created December 7, 2024 14:20
Advent of Code 2024 day 7 - using junctions
#!/usr/bin/env raku
use v6.d;
$*OUT.out-buffer = False; # Autoflush
# Advent of Code 2024 day 7 -- https://adventofcode.com/2024/day/7
sub infix:<∥>(Int $i, Int $j --> Int)
{
# Slightly faster than ($i~$j).Int
return 10*$i + $j if $j < 10;
@mscha
mscha / aoc07
Created December 7, 2024 12:57
Advent of Code 2024 day 7
#!/usr/bin/env raku
use v6.d;
$*OUT.out-buffer = False; # Autoflush
# Advent of Code 2024 day 7 -- https://adventofcode.com/2024/day/7
sub infix:<∥>(Int $i, Int $j --> Int) { ($i ~ $j).Int }
sub valid-equation($equation)
{
@mscha
mscha / aoc06
Created December 6, 2024 13:11
Advent of Code 2024 day 6
#!/usr/bin/env raku
use v6.d;
$*OUT.out-buffer = False; # Autoflush
# Advent of Code 2024 day 6 -- https://adventofcode.com/2024/day/6
enum Direction <north east south west>;
sub left(Direction $d --> Direction) { Direction(($d - 1) % 4) }
sub right(Direction $d --> Direction) { Direction(($d + 1) % 4) }
@mscha
mscha / aoc05
Last active December 5, 2024 12:14
Advent of Code 2024 day 5
#!/usr/bin/env raku
use v6.d;
$*OUT.out-buffer = False; # Autoflush
# Advent of Code 2024 day 5 -- https://adventofcode.com/2024/day/5
class Printer
{
has $.input;
@mscha
mscha / aoc04
Created December 4, 2024 11:25
Advent of Code 2024 day 4
#!/usr/bin/env raku
use v6.d;
$*OUT.out-buffer = False; # Autoflush
# Advent of Code 2024 day 4 -- https://adventofcode.com/2024/day/4
class WordFinder
{
has @.grid;
@mscha
mscha / snakes-and-ladders.raku
Last active November 1, 2023 17:00
Snakes and ladders simulation based on https://www.youtube.com/watch?v=nlm07asSU0c
#!/usr/bin/env raku
use v6.d;
class SnakesAndLadders
{
enum OvershootRules <StepBack StandStill>;
#constant $START-POS = 1;
#constant $WIN-POS = 64;
#constant %SNAKES = 23=>4, 30=>10, 42=>9, 49=>15, 54=>20, 61=>46;