Untitled

mail@pastecode.io avatar
unknown
python
2 months ago
2.7 kB
2
Indexable
Never
plik = open("Maze Ola/maze1.2.txt")
dane = plik.read()
import copy

linijki = dane.splitlines()


szachownica = []
for j in range(len(linijki)):
    szachownica.append(linijki[j])


szachownica_kopia = []
#for j in range(len(linijki)):
#    szachownica_kopia.append(linijki[j])

szachownica_kopia = copy.deepcopy(szachownica)

#print(szachownica)

#sprawdzanie dlugosci linijek
#for i in range(len(szachownica)):
#    print(len(szachownica[i]))

def gdzie_moge_pojsc(pozycja_x, pozycja_y, tablica):
    wyniki = []
    if len(tablica) - 1 > pozycja_y:
        if tablica[pozycja_y + 1][pozycja_x] == " ":
            wyniki.append('d')
            #wyniki += 'd'
            #dol
    if len(tablica[pozycja_y]) - 1 > pozycja_x:
        if tablica[pozycja_y][pozycja_x + 1] == " ":
            wyniki.append('p')
            #wyniki += 'p'
            #prawo
    if pozycja_y > 0:
        if tablica[pozycja_y - 1][pozycja_x] == " ":
            wyniki.append("g")
            #wyniki += 'g'
            #gora
    if pozycja_x > 0:
        if tablica[pozycja_y][pozycja_x - 1] == " ":
            wyniki.append('l')
            #wyniki += 'l'
            #lewo

    return wyniki

def czy_kolo_w(pozycja_x, pozycja_y, tablica):
    if pozycja_y > 0:
        if tablica[pozycja_y - 1][pozycja_x] == "W":
            return True
            #gora
    if len(tablica) - 1 > pozycja_y:
        if tablica[pozycja_y + 1][pozycja_x] == "W":
            return True
            #dol
    if pozycja_x > 0:
        if tablica[pozycja_y][pozycja_x - 1] == "W":
            return True
            #lewo
    if len(tablica[pozycja_y]) - 1 > pozycja_x:
        if tablica[pozycja_y][pozycja_x + 1] == "W":
            return True
            #prawo
    return False

pozycja_x = 0
pozycja_y = 0

trasa = []

while not czy_kolo_w(pozycja_x, pozycja_y, szachownica):
    opcje = gdzie_moge_pojsc(pozycja_x, pozycja_y, szachownica)

    if len(opcje) != 0:
        trasa.append([pozycja_x, pozycja_y, opcje])

        if opcje[0] == 'd':
            pozycja_y += 1
        if opcje[0] == 'p':
            pozycja_x += 1
        if opcje[0] == 'g':
            pozycja_y -= 1
        if opcje[0] == 'l':
            pozycja_x -= 1
        
        trasa[-1][2].pop(0)

    else:
        pozycja_x = trasa[-1][0]
        pozycja_y = trasa[-1][1]
        trasa.pop(-1)

    print(szachownica[pozycja_y][pozycja_x])
    szachownica[pozycja_y][pozycja_x] = '*'

for krok in trasa:
    print('.')
    #print(szachownica_kopia[krok[1]]krok[0])
    szachownica_kopia[1][0] = '#'

for lininika in szachownica_kopia:
    for znak in lininika:
        print(znak, end='')
    print('')
Leave a Comment