diff --git a/2025/Day7/Day7.lua b/2025/Day7/Day7.lua new file mode 100644 index 0000000..58f4f90 --- /dev/null +++ b/2025/Day7/Day7.lua @@ -0,0 +1,35 @@ +-- Day 7 - Advent of Code 2025 - Bas Grolleman +require("functions") + +local input_file = "Day7/test" +local input = file_characters_to_table(input_file) + +local rows = tablelength(input) +local cols = tablelength(input[1]) + +local splits = 0 +local quantumsplits = 0 + +print("Rows " .. rows .. " Cols " .. cols) +print(table.concat(input[1])) +for R = 2, rows do + for C = 1, cols do + if input[R][C] == "." then + if input[R - 1][C] == "S" or input[R - 1][C] == "|" then + input[R][C] = "|" + end + elseif input[R][C] == "^" and input[R - 1][C] == "|" then + if input[R][C - 1] ~= "|" then + input[R][C - 1] = "|" + end + if input[R][C + 1] ~= "|" then + quantumsplits = quantumsplits + 2 + input[R][C + 1] = "|" + end + splits = splits + 1 + end + end + print(table.concat(input[R]) .. " " .. quantumsplits) +end +print("Total splits " .. splits) +print("Total quantumsplits " .. quantumsplits) diff --git a/2025/Day7/full b/2025/Day7/full new file mode 100644 index 0000000..a77fb92 --- /dev/null +++ b/2025/Day7/full @@ -0,0 +1,142 @@ +......................................................................S...................................................................... +............................................................................................................................................. +......................................................................^...................................................................... +............................................................................................................................................. +.....................................................................^.^..................................................................... +............................................................................................................................................. +....................................................................^.^.^.................................................................... +............................................................................................................................................. +...................................................................^.^...^................................................................... +............................................................................................................................................. +..................................................................^.^.^.^.^.................................................................. +............................................................................................................................................. +.................................................................^.^...^.^.^................................................................. +............................................................................................................................................. +................................................................^.^...^.^.^.^................................................................ +............................................................................................................................................. +...............................................................^.^.^.^.^.^.^.^............................................................... +............................................................................................................................................. +..............................................................^.^.^.^.......^.^.............................................................. +............................................................................................................................................. +.............................................................^.........^.^.^...^............................................................. +............................................................................................................................................. +............................................................^.....^.^.^.^...^...^............................................................ +............................................................................................................................................. +...........................................................^.^.^.^.^.^.^.^.^.^.^.^........................................................... +............................................................................................................................................. +..........................................................^.^.^.^.^.^...^.^.^.^.^.^.......................................................... +............................................................................................................................................. +.........................................................^.^.^...^...^...^.^.....^.^......................................................... +............................................................................................................................................. +........................................................^.^.^.^.^.^.^.^...^.^.^.^.^.^........................................................ +............................................................................................................................................. +.......................................................^.^.^.^.^.^.^...^.^.^.^.^.^.^.^....................................................... +............................................................................................................................................. +......................................................^...^.......^.^.....^.^...^.^.^.^...................................................... +............................................................................................................................................. +.....................................................^.^.^.......^.^.^.^...^.^.^.^.^.^.^..................................................... +............................................................................................................................................. +....................................................^...^.^...^.^.^.^.^.^.^.^.^.......^.^.................................................... +............................................................................................................................................. +...................................................^.....^.^.^.^.^.^.^.^.^.^...^.^...^...^................................................... +............................................................................................................................................. +..................................................^.^.^...^.....^.^.^.^.^...^.^.^.^.......^.................................................. +............................................................................................................................................. +.................................................^.^.^.^...^.^.^...^.^...^.^.^.^.^.^.^.^...^................................................. +............................................................................................................................................. +................................................^.^...^...^.^.^...^.......^...^.^.^.....^...^................................................ +............................................................................................................................................. +...............................................^.^.....^...^...^.^.^.^.^.^...^.^.^.^.^.^.^.^.^............................................... +............................................................................................................................................. +..............................................^.^.^.^...^.....^.^.^...........^.^.^.^.....^...^.............................................. +............................................................................................................................................. +.............................................^.^.....^...^.^.^.^.^...^...^.^...^.^.^.^...^.^.^.^............................................. +............................................................................................................................................. +............................................^.^.^...^.^.^.^.^.^.^...^.^...^.^.^...^.^.^.^.^.....^............................................ +............................................................................................................................................. +...........................................^.......^...^.^.^.^.^.^.^...^.^...^.^.^.....^.^.^.^.^.^........................................... +............................................................................................................................................. +..........................................^.^.^.^.......^...^.....^.^.^.^...^.^...^.^.^.......^.^.^.......................................... +............................................................................................................................................. +.........................................^.^.^...^.^...^.^.^...^.^.^.^.^.....^.^...^.....^.^.^.^.^.^......................................... +............................................................................................................................................. +........................................^.^.^.^...^.^.^.^.^.^.......^...^.^.^.....^.^.....^.^...^.^.^........................................ +............................................................................................................................................. +.......................................^.^.^.^.^.^.^.......^.^.^.^...^...^...^.^.^.^...^.^.^.^.......^....................................... +............................................................................................................................................. +......................................^.^.^.^.^...^...^.^.^.^.^...^...^...^.^...^.^.....^.^.^.^...^.^.^...................................... +............................................................................................................................................. +.....................................^.^.....^...^.^...^.^.^.^.........^.^...^.^.^.^.....^.^.^.^.^...^.^..................................... +............................................................................................................................................. +....................................^...^.^.^.^...^...^...^.^.^.^.^.^.^...^.^.^.^.^...^.........^...^.^.^.................................... +............................................................................................................................................. +...................................^.....^.^...^.^.^...^.^...^.^.^.^.^.^...^...^.....^.^.^.^.^.^.....^.^.^................................... +............................................................................................................................................. +..................................^.^.^...^.^.^.^...^.^.^...^.^...^.^.........^.^.^.^...^.....^...^.....^.^.................................. +............................................................................................................................................. +.................................^.^.^.^.^.^.....^.^.^.^.^...^.^.^.^.^...^...^.....^.......^.^.^.^.^...^.^.^................................. +............................................................................................................................................. +................................^...^...^.^...^...^.^.^.^.^.^...^.^...^.^.^.^.^.^.^.^...^.^...^.^.^...^.^.^.^................................ +............................................................................................................................................. +...............................^.^.^.^.^.^.^.....^.^.^.^.......^.^.^.^.^...^.^.^.^.^.^.^.^.^.^.^.^.^.....^.^.^............................... +............................................................................................................................................. +..............................^.^.^.....^.^...^.^.^.......^.^.^.^.^...^.^.^...^.^.^.^.^.^.^.^...^.^.^.........^.............................. +............................................................................................................................................. +.............................^...^...^...^.....^.^...^.^.^.^.......^.^.^...^.^...^.^.^.....^.^.^...^.^.^...^.^.^............................. +............................................................................................................................................. +............................^.^.^.^.....^...^...^.^.^...^.^...^...^.^...^.......^.^.^.^.^.^...^.^.^.^.^.^...^.^.^............................ +............................................................................................................................................. +...........................^...^.^.^.^.^.^.^.^.....^...^.^.^.^.^.^.^.^.^.^.^.^.^.^.^...^.^...^...^.^.^.^.^.^...^.^........................... +............................................................................................................................................. +..........................^.^.^.^...^.^.^.^...^.^...^.^.^...^.^.^.^.^.^.^.^...^.^.^.^.^...^.^.....^...^.^...^.^...^.......................... +............................................................................................................................................. +.........................^.....^.......^.^.^.^.^.....^.^.^.^...^.^...^.^.^.^...^.^.^.^.^.^.^.^.^.^.^.^.^.^...^.^.^.^......................... +............................................................................................................................................. +........................^.^.^.^.^.^.^.^.^.^.^.^.......^.....^...^.^.^...^.^.....^.^.......^.^.^.^.^.^.....^.^.....^.^........................ +............................................................................................................................................. +.......................^...^.^.^.^.....^.^.^.^.......^.^...^.^.....^...^.......^...^.^...^.^.^.^.^.^.^.^.^.^...^.^.^.^....................... +............................................................................................................................................. +......................^.....^.^.^.^.^.^...^.^.^.^...^.....^.^.^.^...^...^.^.^.^.^.^...^.....^.^.^.^...^.^...^...^.^.^.^...................... +............................................................................................................................................. +.....................^.....^.^...^.....^.^.^...^.^...^.^.^...^.^.^.^...^.^...^...^.....^.^...^...^.^.^.^.^.^...^.^.^.^.^..................... +............................................................................................................................................. +....................^.^.......^.^.....^.^.....^.^.^.^.^.^.^.......^.^...^...^...^.....^.^.^.^.....^...^.^.^.^.^.^.....^.^.................... +............................................................................................................................................. +...................^.^.^.^.^.^.^.^.^...^.^.^.^.^...^.^.^.^.^.......^.^.^.^.^...^.^.^.^.^...^.^.^.^...^.^.^.^.^.^.....^.^.^................... +............................................................................................................................................. +..................^.^.^.^.....^.^.^...^.^.^.^.^...^.^...^...^.^.^.^.^.....^.^.....^.^.^.^...^...^.^...^...^.^.^...^.^...^.^.................. +............................................................................................................................................. +.................^.^.^.^.^.^...^...^...^.^.^.^.^.....^...^.^.^.^.^.^...^.^.^...^.^.^...^.^...^...^...^.^.....^.^.^.^...^.^.^................. +............................................................................................................................................. +................^.....^...^.^.^.^.^...^.^.^.^...^.^...^.^.^.......^.^.^.....^.^.^.^.^.^...^...^.^...^.^.....^.^.^.^.^.^.^.^.^................ +............................................................................................................................................. +...............^...^.^.^...^.^.......^.^...^.^...^.^...^.....^...^.^.^.^...^...^.^.^.^.^...^...........^.^.^.^.^.^.....^.^.^.^............... +............................................................................................................................................. +..............^.^.^.....^.^.....^.^.^.^.^...^.^.^.^.^.^.^...^.^.^...^...^.^...^.^.^.^.^.^...^.^.^...^.^.^.^.^.^.^.^.^...^.^.^.^.............. +............................................................................................................................................. +.............^...^.......^.....^.^...^...^.^.^.^.^...^.^...^...^.^.^...^.^.^.^.^.^...^.^.^.^.....^.^...^.^.......^.^.^.^...^.^.^............. +............................................................................................................................................. +............^.^.^.^...^.^...^...^.^.^.^.^.^.^.^.^.^...^...^.^.^.^.^.^.^.^.^...^.^.^.^.....^.^.^.^.^.^.^.^.^.^.^...^...^.^...^.^.^............ +............................................................................................................................................. +...........^.^...^.....^.......^...^.^.....^...^.^.^.^.^.^.^...^.^.^.^.^.^.^...^.^.^...^.^.^.^.^.....^.^.^.^.^.^...^.^.^.^.....^.^........... +............................................................................................................................................. +..........^.......^...^.....^...^...^.^...^.^...^...^.^.^.^.^.^.^.....^.....^...^.^.^.^.^...^.^.^...^.....^.^.^.^.....^...^.^.....^.......... +............................................................................................................................................. +.........^.......^.^.^.^.^.^.^...^.....^.^.^.^.^.^.^.....^...^.^.^.....^.^...^.^.^...^.^.^.^.^.^.^...^.^...^.^...^...^.^.^...^...^.^......... +............................................................................................................................................. +........^.^.^.^.....^.^.^.^.......^.^.^...^.......^.....^...^.....^.^.^...^...^.^...^...^.^.^.^.....^.^.....^.^.^.^.^.^.^.^...^.....^........ +............................................................................................................................................. +.......^.^.^.^.^.....^...^.^.....^...^.^.^...^.^.^.^.^.^.^...^.^.^.^.^.^.^...^.^...^.^.^.^.^.^...^.^.^.^.^.^...^.^...^.^.^...^.^.^.^.^....... +............................................................................................................................................. +......^.^...^.^.....^.^.....^.^.^.....^.^.^.^...^.^...^...^...^...^.^...^.....^.^...^.^.^.^...^.^.^...^.^.^.^...^.^.^.^...^...^.....^.^...... +............................................................................................................................................. +.....^.^.^.^...^.^.^...^.^.....^.^...^.^...^...^.^.^.^...^.^...^...^.^.^.^.....^...^.^.^...^...^.^.^...^.^...^.^.^...^.^.^.^.^.^.^.^.^.^..... +............................................................................................................................................. +....^...^.^.^.^...^...^.^.^.......^.^...^.^...^.^.^...^.^...^.^.^.^.^.^.^.^.^...^...^.^...^.^.^.^.^.^.^.^...^.^...^...^.^.^...^.^.^.^.^.^.... +............................................................................................................................................. +...^...^.^.^.^.^.^.^.^.^...^.^...^.^.^...^...^.^...^.^.....^...^.^.^.^...^...^.^.^.^.^.^.^...^.^.^...^.^.^.....^...^...^.^.^.^.^.^.^.^.^.^... +............................................................................................................................................. +..^...^.^.^.^.^.^.^...^.^.^.^.^.^.^...^.^.^.^.^...^...^.^.^.^...^...^.^.....^.^.^...^.^.^.....^...^.^.^.^.^.^...^...^.^.^...^.^.^.^.....^.^.. +............................................................................................................................................. +.^.^.^.^.^.^.^...^...^.^.^.^.^...^.^.^.^.....^...^...^.^.^.^.^.^.....^.....^...^.^.^.^.^.^...^...^.^.^.^...^.^.^...^.^.^...^.......^.^...^.^. +............................................................................................................................................. diff --git a/2025/Day7/test b/2025/Day7/test new file mode 100644 index 0000000..57a2466 --- /dev/null +++ b/2025/Day7/test @@ -0,0 +1,16 @@ +.......S....... +............... +.......^....... +............... +......^.^...... +............... +.....^.^.^..... +............... +....^.^...^.... +............... +...^.^...^.^... +............... +..^...^.....^.. +............... +.^.^.^.^.^...^. +............... diff --git a/2025/autorun.lua b/2025/autorun.lua index aa9c8fb..1f2e7b2 100644 --- a/2025/autorun.lua +++ b/2025/autorun.lua @@ -5,7 +5,7 @@ vim.api.nvim_create_autocmd("BufWritePost", { pattern = "*.lua", callback = function() local bufnr = 21 - vim.fn.jobstart({ "lua", "Day6/Day6.lua" }, { + vim.fn.jobstart({ "lua", "Day7/Day7.lua" }, { stdout_buffered = true, on_stdout = function(_, data) if data then