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))
Example #3
0
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])
Example #4
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))
Example #5
0
def part1():
    debug.console.rule("[bold red]Part 1")
    state = State.FromStr(problem.GetRaw(22))
    state.Run(False)
    debug.console.log(state.value_winner)