Informatika2-2012/Gyakorlat09mf
A MathWikiből
(Változatok közti eltérés)
Stma (vitalap | szerkesztései) (Új oldal, tartalma: „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 m…”) |
Stma (vitalap | szerkesztései) |
||
44. sor: | 44. sor: | ||
_lab['dir_matrix'] = tuple(m) | _lab['dir_matrix'] = tuple(m) | ||
print(_lab) | print(_lab) | ||
+ | </python> | ||
+ | |||
+ | A példában használt mátrix a fájlban: | ||
+ | <python> | ||
+ | 02100101011101010011 | ||
+ | 11000001101000101010 | ||
+ | 01100101110110011000 | ||
+ | 101001100001E0000010 | ||
+ | 11000101010111011001 | ||
</python> | </python> |
A lap jelenlegi, 2012. május 1., 13:47-kori változata
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