def part1(): grid = ParseInput(problem.GetRaw(11)) converged = grid.RunToConvergence() print(sum(cell == "#" for cell in converged.data.values()))
def part2(): debug.console.rule("[bold red]Part 2") p = Parse(problem.GetRaw(17), dimension=4) for _ in range(0, 6): p = Step(p) debug.console.log(len(p))
def part1(): debug.console.rule("[bold red]Part 1") tiles = {t.tile_id: t for t in FromStr(problem.GetRaw(20))} solution = Solve(tiles) debug.console.log(solution[0, 0][0] * solution[0, 11][0] * solution[11, 0][0] * solution[11, 11][0])
def part2(): debug.console.rule("[bold red]Part 2") tiles = {t.tile_id: t for t in FromStr(problem.GetRaw(20))} solution = Solve(tiles) stitched = Stitch(tiles, solution) debug.console.log(Roughness(stitched))
def part1(): debug.console.rule("[bold red]Part 1") state = State.FromStr(problem.GetRaw(22)) state.Run(False) debug.console.log(state.value_winner)