Skip to content

Instantly share code, notes, and snippets.

View mscha's full-sized avatar

Michael Schaap mscha

View GitHub Profile
@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;
@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 / 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 / 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 / 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 / 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 / aoc07c
Last active December 7, 2024 15:17
Advent of Code 2024 day 7 - silly version with junctions and custom operators
#!/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 / aoc08
Last active December 8, 2024 14:53
Advent of Code 2024 day 8
#!/usr/bin/env raku
use v6.d;
$*OUT.out-buffer = False; # Autoflush
# Advent of Code 2024 day 8 -- https://adventofcode.com/2024/day/8
class Position
{
has Int $.x;
has Int $.y;
@mscha
mscha / aoc09
Last active December 9, 2024 12:52
Advent of Code 2024 day 9
#!/usr/bin/env raku
use v6.d;
$*OUT.out-buffer = False; # Autoflush
# Advent of Code 2024 day 9 -- https://adventofcode.com/2024/day/9
class DiskMap
{
has $.map;
@mscha
mscha / aoc10
Last active December 10, 2024 12:16
Advent of Code 2024 day 10
#!/usr/bin/env raku
use v6.d;
$*OUT.out-buffer = False; # Autoflush
# Advent of Code 2024 day 10 -- https://adventofcode.com/2024/day/10
enum Direction <north east south west>;
class Position
{