Netuším, jak tu plochu generuješ, ale můžeš si při tom ten okruh uložit, tak jak jdou ty hvězdičky za sebou, nebo další políčko vždycky hledat v té ploše. Nedovedu si představit, jak by to vylezlo mimo.
import os
import time
sachovnice = [[' ',' ',' ','*','*','*',' ',' ',' '],
[' ',' ',' ','*','D','*',' ',' ',' '],
[' ',' ',' ','*','D','*',' ',' ',' '],
['*','*','*','*','D','*','*','*','*'],
['*','D','D','D','X','D','D','D','*'],
['*','*','*','*','D','*','*','*','*'],
[' ',' ',' ','*','D','*',' ',' ',' '],
[' ',' ',' ','*','D','*',' ',' ',' '],
[' ',' ',' ','*','*','*',' ',' ',' ']]
def show(sachovnice):
os.system('cls' if os.name == 'nt' else 'clear')
for radek in sachovnice:
print(''.join(radek))
def nextpos(sachovnice, x, y):
size = len(sachovnice)
if x < size // 2:
if y > 0 and sachovnice[y-1][x] == '*':
return x, y-1
else:
if y < size-1 and sachovnice[y+1][x] == '*':
return x, y+1
if y < size // 2:
if x < size-1 and sachovnice[y][x+1] == '*':
return x+1, y
else:
if x > 0 and sachovnice[y][x-1] == '*':
return x-1, y
return x, y
x, y = 5, 0
while True:
sachovnice[y][x] = '*'
x, y = nextpos(sachovnice, x, y)
sachovnice[y][x] = 'A'
show(sachovnice)
time.sleep(0.2)