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