From 25644f23c8764491cd66ce1ec89cd196eb2eb3db Mon Sep 17 00:00:00 2001 From: Michael DiLeo Date: Thu, 6 Nov 2025 21:12:41 +0100 Subject: [PATCH] quest 01 complete --- .../EveryBodyCodes2025.fsproj | 15 ++++ .../EveryBodyCodes2025/Helpers.fs | 18 ++++ .../Inputs/Quest01/Q01_P01.txt | 3 + .../Inputs/Quest01/Q01_P02.txt | 3 + .../Inputs/Quest01/Q01_P03.txt | 3 + .../EveryBodyCodes2025/Program.fs | 13 ++- .../EveryBodyCodes2025/Quest01.fs | 81 ++++++++++++++++++ .../Debug/net9.0/EveryBodyCodes_WrongOne.dll | Bin 19456 -> 18944 bytes .../Debug/net9.0/EveryBodyCodes_WrongOne.pdb | Bin 8248 -> 8320 bytes 9 files changed, 135 insertions(+), 1 deletion(-) create mode 100644 everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Helpers.fs create mode 100644 everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Inputs/Quest01/Q01_P01.txt create mode 100644 everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Inputs/Quest01/Q01_P02.txt create mode 100644 everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Inputs/Quest01/Q01_P03.txt create mode 100644 everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Quest01.fs diff --git a/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/EveryBodyCodes2025.fsproj b/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/EveryBodyCodes2025.fsproj index dadc839..c8e8612 100644 --- a/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/EveryBodyCodes2025.fsproj +++ b/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/EveryBodyCodes2025.fsproj @@ -6,6 +6,21 @@ + + + PreserveNewest + + + + PreserveNewest + + + + PreserveNewest + + + + diff --git a/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Helpers.fs b/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Helpers.fs new file mode 100644 index 0000000..654cddd --- /dev/null +++ b/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Helpers.fs @@ -0,0 +1,18 @@ +module EveryBodyCodes2025.Helpers + +let foldUntilNone folder (state: 's) (source: 'a seq) : 's option = + use e = source.GetEnumerator() + let rec loop acc = + if e.MoveNext() then + match folder acc e.Current with + | Some s -> loop s + | None -> Some acc // last good state + else Some acc // finished entire sequence + loop state + +let arraySwap idx0 idx1 (array: 'a array) = + let a = array[idx0] + let b = array[idx1] + array[idx0] <- b + array[idx1] <- a + array diff --git a/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Inputs/Quest01/Q01_P01.txt b/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Inputs/Quest01/Q01_P01.txt new file mode 100644 index 0000000..f7ea762 --- /dev/null +++ b/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Inputs/Quest01/Q01_P01.txt @@ -0,0 +1,3 @@ +Krynnfal,Felnnyn,Norakmarn,Glynngnaris,Zorasis,Ulmarsarix,Rynquin,Wyntor,Harnmarn,Selkvel + +L6,R8,L7,R1,L2,R7,L1,R6,L5,R2,L7 \ No newline at end of file diff --git a/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Inputs/Quest01/Q01_P02.txt b/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Inputs/Quest01/Q01_P02.txt new file mode 100644 index 0000000..c4bd169 --- /dev/null +++ b/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Inputs/Quest01/Q01_P02.txt @@ -0,0 +1,3 @@ +Ascalthar,Skarkael,Vyrbel,Havisis,Tarlzral,Paltheldrith,Hazthel,Hazwyris,Jarzyth,Mornxal,Vaelacris,Xardaros,Lirzyph,Sylacris,Nexor,Vorndra,Cyndhynd,Ralkyris,Cragkael,Galoryn + +L7,R12,L8,R12,L9,R18,L16,R13,L9,R12,L5,R11,L5,R14,L5,R18,L5,R15,L5,R17,L5,R18,L16,R12,L14,R7,L11,R9,L12 \ No newline at end of file diff --git a/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Inputs/Quest01/Q01_P03.txt b/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Inputs/Quest01/Q01_P03.txt new file mode 100644 index 0000000..e21ffa8 --- /dev/null +++ b/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Inputs/Quest01/Q01_P03.txt @@ -0,0 +1,3 @@ +Xarsar,Elvareldrin,Zraalcyth,Vyrlfeth,Palthonar,Maralor,Qalirin,Dalnyn,Havryn,Maralxal,Ulthyn,Ascalxeth,Thymfyr,Varinralis,Rythangarath,Ulkkynar,Lazlon,Grimulrix,Draithvash,Voraxmir,Vyrlxal,Elvarmal,Maralsyx,Wyrvash,Vornketh,Torendris,Thalcoryx,Paldeth,Vyrlcion,Tazroth + +L25,R49,L14,R13,L11,R12,L43,R45,L38,R34,L34,R44,L44,R35,L35,R30,L38,R37,L49,R48,L5,R39,L5,R27,L5,R14,L5,R32,L5,R46,L5,R9,L5,R24,L5,R43,L5,R21,L5,R22,L15,R49,L27,R41,L18,R31,L26,R16,L10,R40,L19,R6,L20,R24,L40,R44,L5,R47,L35 \ No newline at end of file diff --git a/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Program.fs b/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Program.fs index da1fbd9..8e426a8 100644 --- a/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Program.fs +++ b/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Program.fs @@ -1,2 +1,13 @@ // For more information see https://aka.ms/fsharp-console-apps -printfn "Hello from F#" \ No newline at end of file +open EveryBodyCodes2025 + +[] +let main argv = + + try + printfn $"{Quest01.part1()}" + printfn $"{Quest01.part2()}" + printfn $"{Quest01.part3()}" + with exn -> + printfn $"{exn}" + 0 \ No newline at end of file diff --git a/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Quest01.fs b/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Quest01.fs new file mode 100644 index 0000000..11960f9 --- /dev/null +++ b/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes2025/Quest01.fs @@ -0,0 +1,81 @@ +module EveryBodyCodes2025.Quest01 + +open System +open System.IO +open EveryBodyCodes2025.Helpers + +type Direction = Left | Right +type Instruction = { Direction: Direction; Distance: int } +let parseInstruction (segment:string) = + let direction = if segment[0] = 'L' then Left else Right + let distance = Int32.Parse(segment.AsSpan().Slice(1)) + { Direction = direction; Distance = distance } + +let inline normalize (array: 'a array) idx = + if idx >= 0 then idx % array.Length else array.Length - (-idx % array.Length) + +let inline nextIndex instruction idx = + match instruction.Direction with + | Left -> idx - instruction.Distance + | Right -> idx + instruction.Distance + +let readFile file = + File.ReadAllLines(file) + |> fun lines -> + let names = lines.[0] |> _.Split(",", StringSplitOptions.RemoveEmptyEntries ||| StringSplitOptions.TrimEntries) + let instructions = + lines[2] + |> _.Split(",", StringSplitOptions.RemoveEmptyEntries ||| StringSplitOptions.TrimEntries) + |> Array.map parseInstruction + (names, instructions) + +let part1File file : string = + readFile file + |> fun (names, instructions) -> + instructions + |> Seq.fold (fun (idx, _) instruction -> + let next = nextIndex instruction idx |> fun v -> Math.Clamp(v, 0, names.Length - 1) + + match Array.tryItem next names with + | Some n -> next, n + | None -> failwith "off array" + ) (0, "") + |> snd + +let part1 () = part1File "Inputs/Quest01/Q01_P01.txt" + +let part2File file = + readFile file + |> fun (names, instructions) -> + instructions + |> Seq.fold (fun (idx, _) instruction -> + let next = nextIndex instruction idx |> normalize names + match Array.tryItem next names with + | Some n -> next, n + | None -> failwith "off array" + ) (0, "") + |> snd + +let part2() = part2File "Inputs/Quest01/Q01_P02.txt" + +let part3File file = + readFile file + |> fun (names, instructions) -> + // need to preserve a reference to an array that can be mutated + let mutable nameArray = names + instructions + |> Seq.fold (fun _ instruction -> + // for this challenge the index doesn't matter + let next = match instruction.Direction with + | Left -> names.Length - instruction.Distance + | Right -> instruction.Distance + |> normalize names + match Array.tryItem next nameArray with + | Some n -> + nameArray <- arraySwap 0 next names + 0, n + | None -> failwith "off array" + ) (0, "") + |> snd + +let part3() = part3File "Inputs/Quest01/Q01_P03.txt" \ No newline at end of file diff --git a/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes_WrongOne/bin/Debug/net9.0/EveryBodyCodes_WrongOne.dll b/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes_WrongOne/bin/Debug/net9.0/EveryBodyCodes_WrongOne.dll index c898d642e7428fba8d05c858ced3a7bcf6242d46..8fcea48418ea3b822e6414f20dd311055a9761f5 100644 GIT binary patch delta 8248 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 delta 8863 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 X!zhzxkmY|8(FbicbbLU{g2ev?8{sIZ diff --git a/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes_WrongOne/bin/Debug/net9.0/EveryBodyCodes_WrongOne.pdb b/everybody-codes/2025/EveryBodyCodes2025/EveryBodyCodes_WrongOne/bin/Debug/net9.0/EveryBodyCodes_WrongOne.pdb index ba4d769a9317603a310c4fd137788a7e0bd77a2c..05dadb1044c1c10fffc52acd2eee58d54dd71190 100644 GIT binary patch delta 2522 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