06-1
This commit is contained in:
94
06/06-1.py
Normal file
94
06/06-1.py
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
file = "./input.txt"
|
||||||
|
#file = "./ex.txt"
|
||||||
|
import sys
|
||||||
|
sys.setrecursionlimit(6000)
|
||||||
|
|
||||||
|
def print_game_field():
|
||||||
|
for game_line in game_field:
|
||||||
|
print(game_line)
|
||||||
|
|
||||||
|
def guard_position() -> (int, int):
|
||||||
|
for li in range(game_field_lines):
|
||||||
|
for ro in range(game_field_rows):
|
||||||
|
if game_field[li][ro] == '^':
|
||||||
|
print(f'GuardPosition: line:{li}, row:{ro}')
|
||||||
|
return li, ro
|
||||||
|
|
||||||
|
def go_up():
|
||||||
|
global gl
|
||||||
|
global gr
|
||||||
|
game_field[gl][gr] = 'X'
|
||||||
|
if gl == 0:
|
||||||
|
count_fields()
|
||||||
|
elif game_field[gl-1][gr] == '#':
|
||||||
|
go_right()
|
||||||
|
else:
|
||||||
|
gl -= 1
|
||||||
|
go_up()
|
||||||
|
|
||||||
|
def go_right():
|
||||||
|
global gl
|
||||||
|
global gr
|
||||||
|
game_field[gl][gr] = 'X'
|
||||||
|
if gr == game_field_rows-1:
|
||||||
|
count_fields()
|
||||||
|
elif game_field[gl][gr+1] == '#':
|
||||||
|
go_down()
|
||||||
|
else:
|
||||||
|
gr += 1
|
||||||
|
go_right()
|
||||||
|
|
||||||
|
def go_down():
|
||||||
|
global gl
|
||||||
|
global gr
|
||||||
|
game_field[gl][gr] = 'X'
|
||||||
|
if gl == game_field_lines-1:
|
||||||
|
count_fields()
|
||||||
|
elif game_field[gl+1][gr] == '#':
|
||||||
|
go_left()
|
||||||
|
else:
|
||||||
|
gl += 1
|
||||||
|
go_down()
|
||||||
|
|
||||||
|
def go_left():
|
||||||
|
global gl
|
||||||
|
global gr
|
||||||
|
game_field[gl][gr] = 'X'
|
||||||
|
if gr == 0:
|
||||||
|
count_fields()
|
||||||
|
elif game_field[gl][gr-1] == '#':
|
||||||
|
go_up()
|
||||||
|
else:
|
||||||
|
gr -= 1
|
||||||
|
go_left()
|
||||||
|
|
||||||
|
def count_fields():
|
||||||
|
solution = 0
|
||||||
|
for g_line in game_field:
|
||||||
|
for field in g_line:
|
||||||
|
if field == 'X':
|
||||||
|
solution += 1
|
||||||
|
print_game_field()
|
||||||
|
print("Ende")
|
||||||
|
print(f"Number of visited Fields: {solution}")
|
||||||
|
exit(0)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
game_field = []
|
||||||
|
input_file = open(file, "r")
|
||||||
|
for line in input_file:
|
||||||
|
line = line.strip()
|
||||||
|
if line == "":
|
||||||
|
continue
|
||||||
|
tmp = []
|
||||||
|
for b in line:
|
||||||
|
tmp.append(b)
|
||||||
|
game_field.append(tmp)
|
||||||
|
input_file.close()
|
||||||
|
|
||||||
|
print_game_field()
|
||||||
|
game_field_lines, game_field_rows = len(game_field), len(game_field[0])
|
||||||
|
gl, gr = guard_position()
|
||||||
|
go_up()
|
||||||
10
06/ex.txt
Normal file
10
06/ex.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
....#.....
|
||||||
|
.........#
|
||||||
|
..........
|
||||||
|
..#.......
|
||||||
|
.......#..
|
||||||
|
..........
|
||||||
|
.#..^.....
|
||||||
|
........#.
|
||||||
|
#.........
|
||||||
|
......#...
|
||||||
130
06/input.txt
Normal file
130
06/input.txt
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
.......................#...................#....#..#......#.................#.#..#........................#.#..............#.....#
|
||||||
|
................#.#.......#..#.......#.................................................................................#.##.......
|
||||||
|
............#..............#......................#...#.....#...#..........##.........#.....#.....................................
|
||||||
|
..#...#......................................#............................#..................#..........#..#......................
|
||||||
|
....#........#.#....................#..........#.....#.............#..#............................#..................#......#....
|
||||||
|
..........................................................#................#............................................#.........
|
||||||
|
..#............................#.....#...........................#...........#........##...........................#..#...........
|
||||||
|
.....................#...........................#.#..............#......................................#.........#....#.....#...
|
||||||
|
.#...#.#.................#....................#...............................................................#.#..........#......
|
||||||
|
....#....................................#...........................................#.....#..........#...........................
|
||||||
|
.......................#..........#..............#......#....#.......#........................................#.#.................
|
||||||
|
......#...........................................................#...#............#.................#............................
|
||||||
|
.......#.................#..#.....................#...............................................................................
|
||||||
|
..............#....................#.#..........#........#......#................#.................#..........#...................
|
||||||
|
#.#.......................................#.........................#...................................#.........................
|
||||||
|
...#.........................................................................................#................#..................#
|
||||||
|
#.....#....#............................................................#.........................#..................#.#..........
|
||||||
|
.#.....#.#.......#.#..................#.#......................#.......#.....#..#..................##.....#.......#...#...........
|
||||||
|
....#.........#.................................#..........#........#...............#................#...................#....#...
|
||||||
|
.................#...............#...#.................#.................................................#........................
|
||||||
|
....#...#...............................#..................................................#..........#................#.....#....
|
||||||
|
...........#........#....#.......#...#..........#...............#.....#.....#.....#..........#....................................
|
||||||
|
............#.........#.................#................#.................#.#..................................................#.
|
||||||
|
............#......................................#...................................................................#..........
|
||||||
|
...........#....#.....................................................................................#............#..........#...
|
||||||
|
..........#........................................#.............#.................#........................#..#.......#........#.
|
||||||
|
......#.............................#.................##..................................#.....................#.................
|
||||||
|
.#.................................#.............................................#.................##.....#..............#......#.
|
||||||
|
.........................#..............................#..........#...........#....#................#......................#.....
|
||||||
|
.......#...................#......##........................#.........#...........................................................
|
||||||
|
......................................................................##...........#................#.............................
|
||||||
|
....#...................................##...............................................#........................................
|
||||||
|
...##.....#..#........#.................#..............................................................#..........................
|
||||||
|
........##......#....................#..............................#......................#...................#..................
|
||||||
|
.........................................................#.......................................................#.#..............
|
||||||
|
..........#.............................#.........#...............#................#.#.........#..........................#.#.....
|
||||||
|
....................#...................#..#.......................................................#..........#...............#...
|
||||||
|
...........................................................#........................#.........#........#..........................
|
||||||
|
.......#..............#......#.................................#...................##...........................#.........#.......
|
||||||
|
#...#...............................................................................................................#.............
|
||||||
|
................................#..#....#............#...........#..................#.............................#...............
|
||||||
|
....................#..............#.........#.................................#.............#..##................................
|
||||||
|
#...#..................................................................................#.....#...........#........................
|
||||||
|
........#...........#........#...#..................#.....#....#.........#.........................#...........................#..
|
||||||
|
.............#...#...................................................................#...........#................................
|
||||||
|
.............#........................................#...#.............#..............................#..#.........#.............
|
||||||
|
...#.................................................................................#.............#..........................##..
|
||||||
|
...#..............................................................................................................................
|
||||||
|
................#.........#..................................#...................#................................................
|
||||||
|
...#................#...#.#.....................#...........#..................................#........#....#......#.............
|
||||||
|
..........................#.....................#..#...................................##........................................#
|
||||||
|
#........................#...............................................#........#..#..........#...........................#.....
|
||||||
|
.#............#.#..............................................................#...........#......................................
|
||||||
|
......#..................................................................#.......#..............................#...#....#........
|
||||||
|
........#........................#.........#.............#.....#..................................................................
|
||||||
|
...............................................................................#...........................................#......
|
||||||
|
........................#..................................#.....................................................#................
|
||||||
|
............................................................#..........................#.................#.......................#
|
||||||
|
.....................#..#.........................#..............#.............................#........#..............##......#..
|
||||||
|
.....................#.................................................#.......#............#........................#.......#....
|
||||||
|
......................#.....................................................#......#............................#.................
|
||||||
|
................................................................#...#..##..#.....................................#...............#
|
||||||
|
..............#..............................................................................................#....................
|
||||||
|
............................................#......#..........#...............................................................#...
|
||||||
|
....#.................................#..................................................................#..........##..#.........
|
||||||
|
............#.....#................................................................................#..........#.........#.........
|
||||||
|
.....................#......................................#.........#....................................................#....#.
|
||||||
|
.........................#...............................#...............................#....................#...................
|
||||||
|
.#.....................#.#.......................................#....#...........#.......................#.......................
|
||||||
|
.....................................................#.#..#......................................................................#
|
||||||
|
#..........#..........................#............................#.............#..................#.............#...........#...
|
||||||
|
........#.........................................................................................................................
|
||||||
|
..........#.............#.........................................#................................................#..............
|
||||||
|
...........#................................#.................#...........................#.............................#.........
|
||||||
|
..................#.........................................#.#..................#...#...........#.......#..#.....................
|
||||||
|
........................................................#...#.......................................................#.............
|
||||||
|
.........................................................................#.......#..#.....#.......................................
|
||||||
|
............#..............................................................#.........#..............#.............#...............
|
||||||
|
#...#..........................................#...........#.....#.....................................#...............#..........
|
||||||
|
...........................#............#.........................................................................................
|
||||||
|
...#..........................................#.......................................................................#...........
|
||||||
|
..............#......#.....#.....................#..........................#.....................................................
|
||||||
|
.........................#....#...................#...#.......#..............................#........................#...........
|
||||||
|
.............................#............^.#................................................#......#..#.#...........#............
|
||||||
|
....................................................................................#...#.#...................................#...
|
||||||
|
.......................#..............................##..............................................#...........................
|
||||||
|
......................#...................................................#..........................................#............
|
||||||
|
......#........................................................................#.....................................#............
|
||||||
|
.......................#.............................#........................#...........#...........#............#...........#..
|
||||||
|
....#...............#..#......#....#..................#.............#.......#...............#.......................#.............
|
||||||
|
............#...#..................#..............................................................................................
|
||||||
|
....#.......#.................#.......................................................#..#......#.................................
|
||||||
|
.........#......#..........#......................#.....................#..................#.#....................................
|
||||||
|
...............##.......................................................#...#.............................#.......#...............
|
||||||
|
........................................................##...................#...#............#......#............................
|
||||||
|
...........#...#..............#.............................................................#...................#............#....
|
||||||
|
...............................................#.....#.....#......................................................................
|
||||||
|
.#....................#...#........#....................#.#.........#..........#................................#................#
|
||||||
|
.............#.....#..#....................................#.#...........#.................................................#..#.#.
|
||||||
|
......#.....................................#....................................................................#................
|
||||||
|
............................................................##......#.....................#.......#.....................#...#.....
|
||||||
|
.#.......#......................#.................................................................................................
|
||||||
|
................#....#......................#.........#...................#........#.......##.....#...............................
|
||||||
|
..#....#....................#............................................................#.#......#............#.....#.#....#.....
|
||||||
|
.................................#.................................................#.......#......................................
|
||||||
|
..................#...........#....#.....................#......#...............#..................#....................##........
|
||||||
|
.##...............................................#............#...........................#......................................
|
||||||
|
.............#...........#...........................#..#.......#...#..........#......................#..........#................
|
||||||
|
.......#...................................#.................#....#..............................................................#
|
||||||
|
........#....................................................#.................#.....#.........#.#................................
|
||||||
|
................#.................................#.....................#.....#.....#............................##...............
|
||||||
|
..............................................##.................#..##........#...........#............#..........................
|
||||||
|
....#......................................#...............................................................................#......
|
||||||
|
..#..............#.#................#..#..............#.......................................#.#.......#..............#......#..#
|
||||||
|
.....#..............................................................................................................#.......#.....
|
||||||
|
..#.......#.#..........#.......#..................................#..........#.......#.................#...........#...........#..
|
||||||
|
...............#.....#................#............#................#............#.....#.#........#...............................
|
||||||
|
....#.....................#................#.....................................#......................#.#.......#....#..........
|
||||||
|
........#...............#...#.....................................................#........#.........#.........#..................
|
||||||
|
...#......#..........................#.....#..........................##.......#....#.............................................
|
||||||
|
.............#................................#............................#.....#.......#......#................................#
|
||||||
|
.......................#............#..........................#..................................................................
|
||||||
|
.................................................#..............#...#...........................#.................................
|
||||||
|
......#...................#..............................................................................................#....#..#
|
||||||
|
....................................#......#.....................#..............#.......#...................#.....................
|
||||||
|
............#...................................#...........#........#........#...........................................##......
|
||||||
|
#...........#..........................#....................................#.........#................................#..........
|
||||||
|
......##..#...............................................................#...............................#.........#.............
|
||||||
|
.......................#.....#.........................#...#.........................#.....#..........#.#...#.....................
|
||||||
|
.......................#..#.....#.....#..........................#.........#.....#....................#.....#....................#
|
||||||
Reference in New Issue
Block a user