|
lud202310info.py
|
|
1 def F1():
2 global osvenyek, dobasok
3 osvenyek=[]
4 fbe=open('osvenyek.txt','r')
5 for sor in fbe:
6 sor=sor.strip()
7 osvenyek.append(sor)
8 fbe.close()
9
10 fbe=open('dobasok.txt','r')
11 sor=fbe.readline().strip().split()
12 dobasok=list(map(int,sor))
13 fbe.close()
14
15 def F2():
16 print('2. feladat')
17 print(f'A dobások száma: {len(dobasok)}')
18 print(f'Az ösvények száma: {len(osvenyek)}')
19
20 def F3():
21 print('3. feladat')
22 # PROGRAMOZÁSI TÉTEL - szélsőértékkeresés (max,min)
23 maxh=len(osvenyek[0])
24 ssz=1
25 for i in range(1,len(osvenyek)):
26 if len(osvenyek[i])>maxh:
27 maxh=len(osvenyek[i])
28 ssz=i+1
29 print(f'Az egyik leghosszabb a(z) {ssz}. ösvény, hossza: {maxh}')
30
31 rendezett=sorted(osvenyek,key=lambda elem:len(elem),reverse=True)
32 maxh=len(rendezett[0])
33 ssz=osvenyek.index(rendezett[0])+1
34 # legn=max(osvenyek,key=lambda elem:len(elem))
35 print(f'Az egyik leghosszabb a(z) {ssz}. ösvény, hossza: {maxh}')
36
37 def F4():
38 print('4. feladat')
39 global os,jsz
40 os=int(input('Adja meg egy ösvény sorszámát! '))
41 jsz=int(input('Adja meg a játékosok számát! '))
42
43 def F5():
44 print('5. feladat')
45 osveny=osvenyek[os-1]
46 lista=list(osveny)
47 M=lista.count('M')
48 V=lista.count('V')
49 E=lista.count('E')
50 if M>0:
51 print(f'M: {M} darab')
52 if V>0:
53 print(f'V: {V} darab')
54 if E>0:
55 print(f'E: {E} darab')
56
57 def F6():
58 fki=open('kulonleges.txt','w')
59 osveny=osvenyek[os-1]
60 for i in range(len(osveny)):
61 if osveny[i]!='M':
62 print(f'{i+1}\t{osveny[i]}',file=fki)
63 fki.close()
64
65 def F7():
66 print('7. feladat')
67 kor=0 # hányadik körben vagyunk
68 ukor=0 # a játék vége ennél a körnél van
69 oh=len(osvenyek[os-1]) # ösvényünk hossza
70 szum=[0]*jsz # jsz==5 [0,0,0,0,0] dobások összegzése játékosonként
71 # dobasok 2 4 6 5 6 1 4 1 3 4 5 1 2 4 6 2 3 3 5 5 6 2 1 3 4 4 2 6 2 4 5 6 3 2 1 2 3 1 1 6 4
72
73 for i in range(0,len(dobasok)-jsz,jsz):
74 adott_kor=dobasok[i:i+jsz] # adott_kor 2 4 6 5 6
75 for j in range(jsz):
76 szum[j]+=adott_kor[j]
77 kor+=1
78 # valaki elérte-e az osvény végét
79 for j in range(jsz):
80 if szum[j]>=oh:
81 ukor=kor
82 jsorszam=j+1
83 if ukor!=0:
84 break
85
86 print(f'A játék a(z) {ukor}. körben fejeződött be. A legtávolabb jutó(k) sorszáma: {jsorszam}')
87
88 def F8():
89 print('8. feladat')
90 kor=0 # hányadik körben vagyunk
91 ukor=0 # a játék vége ennél a körnél van
92 oh=len(osvenyek[os-1]) # ösvényünk hossza
93 szum=[0]*jsz # jsz==5 [0,0,0,0,0] dobások összegzése játékosonként
94 nyertesek=[]
95 # dobasok 2 4 6 5 6 1 4 1 3 4 5 1 2 4 6 2 3 3 5 5 6 2 1 3 4 4 2 6 2 4 5 6 3 2 1 2 3 1 1 6 4
96
97 for i in range(0,len(dobasok)-jsz,jsz):
98 adott_kor=dobasok[i:i+jsz] # adott_kor 2 4 6 5 6
99 for j in range(jsz):
100 hozzaad=adott_kor[j] # amekkorát dobott a j. játékos
101 szum[j]+=hozzaad
102
103 if szum[j]<oh:
104 holvan=osvenyek[os-1][szum[j]-1] # az a mező, amin éppen áll a játékos
105 if holvan=='E':
106 szum[j]+=hozzaad
107 if holvan=='V':
108 szum[j]-=hozzaad
109 kor+=1
110 # valaki elérte-e az osvény végét
111
112 for j in range(jsz):
113 if szum[j]>=oh:
114 ukor=kor
115 nyertesek.append(j+1)
116 if ukor!=0:
117 break
118
119 print('Nyertesek:',end=' ')
120 for i in range(len(nyertesek)):
121 print(nyertesek[i],end=' ')
122 print('\nA többiek pozíciója:')
123 for i in range(jsz):
124 if i+1 not in nyertesek:
125 print(f'{i+1}. játékos, {szum[i]}. mező')
126
127 # ---------------------------------------------------------------------
128 F1()
129 F2()
130 F3()
131 F4()
132 F5()
133 F6()
134 F7()
135 F8()