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…”)
Újabb szerkesztés →
(Ú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…”)
Újabb szerkesztés →
A lap 2012. május 1., 11:41-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)