1 def feladat(f):2 print(f'{'-'*75}\n{f}. feladat')3 4 osvenyek=[sor.strip() for sor in open('osvenyek.txt','r')]5 dobasok=list(map(int,open('dobasok.txt','r').readline().strip().split()))6 7 feladat(2)8 print(f'A dobások száma: {len(dobasok)}')9 print(f'Az ösvények száma: {len(osvenyek)}')10 11 feladat(3)12 maxh_osv=max(osvenyek,key=lambda osveny:len(osveny))13 ssz=osvenyek.index(maxh_osv)+114 print(f'Az egyik leghosszabb a(z) {ssz}. ösvény, hossza: {len(maxh_osv)}')15 16 feladat(4)17 osveny=osvenyek[int(input('Adja meg egy ösvény sorszámát! '))-1]18 jsz=int(input('Adja meg a játékosok számát! '))19 20 feladat(5)21 lista=list(osveny)22 [print(f'{mezo}: {lista.count(mezo)} darab') for mezo in ['M','V','E'] if lista.count(mezo)>0]23 24 with open('kulonleges.txt','w') as fki:25 [print(f'{i+1}\t{osveny[i]}',file=fki) for i in range(len(osveny)) if osveny[i]!='M']26 27 feladat(7)28 poziciok=[0]*jsz # jsz==5 [0,0,0,0,0] dobások összegzése játékosonként29 for i in range(0,len(dobasok)-jsz,jsz): # dobasok 2 4 6 5 6 1 4 1 3 4 5 1 2 4 6 2 3 3 5 5 ...30 aktualis_kor=dobasok[i:i+jsz] # aktualis_kor például [2, 4, 6, 5, 6] ha jsz=531 for j in range(jsz):32 poziciok[j]+=aktualis_kor[j]33 if max(poziciok)>=len(osveny): # valaki elérte-e az ösvény végét34 nyertes=poziciok.index(max(poziciok))+1 35 break 36 print(f'A játék a(z) {i//jsz+1}. körben fejeződött be. A legtávolabb jutó(k) sorszáma: {nyertes}')37 38 feladat(8)39 poziciok=[0]*jsz # ha pl. jsz==5 --> [0,0,0,0,0] tulajdonképpen a dobások összegzése játékosonként40 nyertesek=[]41 for i in range(0,len(dobasok)-jsz,jsz): # dobasok 2 4 6 5 6 1 4 1 3 4 5 1 2 4 6 2 3 3 5 5 ...42 aktualis_kor=dobasok[i:i+jsz] # aktualis_kor például [2, 4, 6, 5, 6] ha jsz=543 for j in range(jsz):44 poziciok[j]+=aktualis_kor[j] # amekkorát dobott a j. játékos, azt hozzáadjuk a pozíciójához45 if poziciok[j]<len(osveny): # ha még nem ért célba, akkor46 match osveny[poziciok[j]-1]: # a mező, amin éppen áll a játékos speciális-e (E, vagy V)47 case 'E': poziciok[j]+=aktualis_kor[j]48 case 'V': poziciok[j]-=aktualis_kor[j] 49 # ha valaki elérte az osvény végét, sorszáma bekerül a nyertesek listába50 if len([nyertesek.append(j+1) for j in range(jsz) if poziciok[j]>=len(osveny)])>0: 51 break # ha a nyertesek lista már nem üres, akkor végeztünk...52 print('Nyertesek:',end=' ')53 [print(nyertesek[i],end=' ') for i in range(len(nyertesek))]54 print(f'\nA többiek pozíciója a(z) {len(osveny)} hosszú ösvényen:')55 [print(f'{i+1}. játékos: {poziciok[i]}. mező')for i in range(jsz) if i+1 not in nyertesek]56 57 58 59 60 61 62