Informatika2-2012/Gyakorlat09mf
A MathWikiből
Egy példa arra hogyan lehetne megvalósítani a labirintus beolvasását.
Itt először kilistázunk minden olyan fájlt ami mylab kiterjesztést kapott. Majd megkérdezzük melyiket szeretné használni. Utána beolvassuk a fájl tartalmát és közben felépítjük a később használatos labirintus szótárt a mátrixal együtt.
#!/usr/bin/env python import glob _lab = {} if __name__ == '__main__': # a konyvtarban levo osszes .mylab fájl egy listaba kigyujtese l = glob.glob('./*.mylab') # a kívánt labirintus kiválasztása for i in enumerate(l): print i[0], i[1] whi = int(raw_input('Melyik lab szeretned hasznalni')) m = [] # with segitsegevel egyszeruen megvalosithato a try, finally blokk with open(l[whi],'r') as f: for i in f: sor = [] t = 0 l = len(i) p = [] while t < l: # ha az egyik irany 2 akkor az a kiindulasi pont if i[t] == '2': _lab['start'] = (len(m), t/4) t += 1 # ha E karaktarhez erunk akkor az a kijaratot jeloli elif i[t] == 'E': sor.append(tuple()) t += 4 continue p.append(0 if i[t] == '0' else 1) if not t % 4 and t > 0: sor.append(tuple(p)) p = [] t += 1 m.append(tuple(sor)) _lab['dir_matrix'] = tuple(m) print(_lab)
A példában használt mátrix a fájlban:
02100101011101010011 11000001101000101010 01100101110110011000 101001100001E0000010 11000101010111011001