You are on page 1of 2

import random

# Függvény a dobás kiértékelésére


def ertekeles(dobas):
eredmenyek = {'egy_pár':0, 'két_pár':0, 'terc':0, 'kis_sor':0, 'nagy_sor':0,
'full':0, 'póker':0, 'yahtzee':0}
osszeg = sum(dobas)
darabok = {}
for dob in dobas:
darabok[dob] = darabok.get(dob, 0) + 1
if len(darabok) == 2:
if max(darabok.values()) == 3:
eredmenyek['full'] = 25
else:
eredmenyek['póker'] = osszeg
elif len(darabok) == 1:
eredmenyek['yahtzee'] = 50
else:
for i in range(1, 6):
if set([i, i+1, i+2, i+3]).issubset(set(dobas)):
eredmenyek['nagy_sor'] = 40
break
for i in range(1, 5):
if set([i, i+1, i+2, i+3]).issubset(set(dobas)):
eredmenyek['kis_sor'] = 30
break
for dob in darabok:
if darabok[dob] == 2:
if eredmenyek['egy_pár']:
eredmenyek['két_pár'] = 2 * dob + eredmenyek['egy_pár']
else:
eredmenyek['egy_pár'] = 2 * dob
elif darabok[dob] == 3:
eredmenyek['terc'] = 3 * dob
return eredmenyek

# Eljárás a játék futtatásához


def jatek(fordulok):
jatekosok = {'1': 0, '2': 0}
for i in range(fordulok):
print(f'\n{i+1}. forduló')
for j in range(1, 3):
dob = [random.randint(1, 6) for _ in range(5)]
eredmenyek = ertekeles(dob)
print(f'{j}. játékos dobása: {dob}, eredmények: {eredmenyek}')
pontok = sorted(eredmenyek.values(), reverse=True)
jatekosok[str(j)] += pontok[0]
if jatekosok['1'] == jatekosok['2']:
print('Döntetlen!')
else:
gyoztes = max(jatekosok, key=jatekosok.get)
print(f'{gyoztes}. játékos nyert a(z) {i+1}. fordulóban!')
vegso_gyoztes = max(jatekosok, key=jatekosok.get)
print(f'\nVégeredmény: {vegso_gyoztes}. játékos nyert
{jatekosok[vegso_gyoztes]} ponttal.')
def main():
fordulok = int(input('Add meg a fordulók számát: '))
jatek(fordulok)
if __name__ == '__main__':
main()

Tessék fannikám
kód magyarázata:
Ez egy Python program, amely egy egyszerű játékot valósít meg. Az első sorban
importáljuk a Python beépített random modulját, amely lehetővé teszi, hogy
véletlenszerű számokat generáljunk.

A program következő része két függvényt definiál:

Az ertekeles függvény a dobott számokat értékeli ki és visszaadja az eredményeket


egy szótár formájában. Az eredmények között szerepelnek például egy pár, két pár,
terc, kis és nagy sor, full, póker és yahtzee. A függvény elvégzi az összes
szükséges ellenőrzést annak megállapításához, hogy melyik eredmények érvényesek, és
visszaadja a pontszámokat is.

A jatek függvény végrehajtja a játékot. A játékban két játékos játszik, és minden


fordulóban mindkét játékos dob 5 dobókockával. Az ertekeles függvényt használjuk az
eredmények kiszámítására, majd a pontszámokat összeadjuk és hozzáadjuk a játékosok
pontjaihoz. Ha mindkét játékosnak azonos pontszáma van, akkor az adott forduló
döntetlen, ellenkező esetben a fordulót nyerő játékos pontjai növekednek. A végén a
program megállapítja a nyertes játékost és kiírja az eredményt.

Az input függvény segítségével az utolsó részben a felhasználó megadhatja a


fordulók számát, majd a main függvény ezt átadja a jatek függvénynek a játék
elindítása érdekében. A __name__ == '__main__' feltétel segítségével a program
akkor fut, ha közvetlenül futtatjuk a fájlt, de nem fut, ha a fájlt egy másik
programból importáljuk. Ez lehetővé teszi, hogy a programot teszteljük és futtassuk
egyidejűleg, miközben más Python fájlokból importáljuk a függvényeket.

You might also like