Kártya játék Francia kártyával.

 A YouTube -on láttam egy kártyajáték videó kódot és mivel nem értettem, gondoltam csinálok én is egyet. Tovább fejleszthető.

import random
import tkinter as tk
from tkinter import messagebox


class PakliKeszites:
def __init__(self):

self.pakli = []

def pakli_keszites(self):
szinek = ['pikk', 'treff', 'kör', 'káró']

for szin in szinek:
for ertek in range(2, 15):
if ertek < 10:
self.pakli.append(f'0{ertek}_{szin}.png')
else:
self.pakli.append(f'{ertek}_{szin}.png')

random.shuffle(self.pakli)

return self.pakli


class Main(tk.Tk):
def __init__(self):
super().__init__()

self.title('Kártya játék.')
self.geometry('500x400+800+100')
self.configure(bg='green')

self.jatekos_pont = 0
self.oszto_pont = 0

# Keret a két kártyalapnak
self.frame = tk.Frame(self, bg='green')
self.frame.pack(pady=20)

self.jatekos_frame = tk.LabelFrame(self.frame,
text='Játékos',
bg='yellow')
self.jatekos_frame.grid(row=0, column=0, padx=20,
pady=20, ipadx=10, ipady=5)

self.oszto_frame = tk.LabelFrame(self.frame,
text='Osztó',
bg='yellow')
self.oszto_frame.grid(row=0, column=1, padx=20,
pady=20, ipadx=10, ipady=5)

self.jatekos_label = tk.Label(self.jatekos_frame, image='')
self.jatekos_label.pack()

self.oszto_label = tk.Label(self.oszto_frame, image='')
self.oszto_label.pack()

self.ujlapok = tk.Button(self, text='Osztás',
command=self._uj_osztas)
self.ujlapok.pack(pady=20)

keszito = PakliKeszites()
self.pakli = keszito.pakli_keszites()

self._kezdo_osztas()

def _kezdo_osztas(self):
self.jatekos_lap = self.pakli.pop()
self.oszto_lap = self.pakli.pop()

self.jatekos_photo = tk.PhotoImage(
file=f"images2/{self.jatekos_lap}")
self.oszto_photo = tk.PhotoImage(
file=f"images2/{self.oszto_lap}")

self.jatekos_label.config(image=self.jatekos_photo)
self.oszto_label.config(image=self.oszto_photo)

self.title(f'Lapok száma: {len(self.pakli)}')

self.eredmeny_jelzo()

def _uj_osztas(self):
del self.jatekos_lap
del self.oszto_lap
del self.jatekos_photo
del self.oszto_photo

try:
self.jatekos_lap = self.pakli.pop()
self.oszto_lap = self.pakli.pop()

self.title(f'Lapok száma: {len(self.pakli)}')

except IndexError:
self.title(f'A lapok elfogytak!: {len(self.pakli)}')

valasz = tk.messagebox.askquestion(
title='Vége a partinak!',
message='Új játék mehet?') # no, yes

if valasz == 'no':
self.destroy()
else:
self.destroy()
Main()

else:
self.jatekos_photo = tk.PhotoImage(
file=f"images2/{self.jatekos_lap}")
self.oszto_photo = tk.PhotoImage(
file=f"images2/{self.oszto_lap}")

self.jatekos_label.config(image=self.jatekos_photo)
self.oszto_label.config(image=self.oszto_photo)

self.eredmeny_jelzo()

def eredmeny_jelzo(self):
self.jatekos_pont += int(self.jatekos_lap[:2])
self.oszto_pont += int(self.oszto_lap[:2])
print(f'Játékos pontjai: {self.jatekos_pont}')
print(f'Osztó pontjai: {self.oszto_pont}')


if __name__ == '__main__':
m = Main()
m.mainloop()

A kártya képek fájl nevei:

02_káró.png

02_kör.png

02_pikk.png

02_treff.png

stb..stb..

14_káró.png

14_kör.png

14_pikk.png

14_treff.png


Layco


Nincsenek megjegyzések:

Megjegyzés küldése