codigo:
Material de descarga: click aqui
Nota: Los links incluyen el uso de un acortador, favor de resolver el captcha y esperar los 3 segundos que indica el acortador, se recomienda desabilitar el uso de bloqueadores de publicidad
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from tkinter import *
import tkMessageBox
import random
import Imagenes
import os
class app():
dirImagenes=os.path.dirname(__file__)+"/Imagenes/"
imagenes=[]
mazos=["C","E","T","D"]
numeros=["0","1","2","3","4","5","6","7","8","9","J","Q","K"]
lables=[]
c=0 #control de posicion X de los labels
indice=0
cuenta=0 #lleva el control de los puntos acumulados
def __init__(self):
self.ventana=Tk()
self.ventana.geometry("400x500")
self.ventana.title("Black Jack")
self.load()
self.ventana.mainloop()
def load(self):
self.ET=Label(self.ventana,text="Black Jack",font=("Arial",12,"bold")).pack()
self.ET1=Label(self.ventana,text="Hola Bienvenido al juego de Black Jack\n"
"Reglas: \n"
"1.Intenta Ganar al sumar 21 puntos no mas no menos\n"
"2.Si obtienes un as puedes transformarlo en valores de 1 u 11\n"
"3.Diviertete", font=("Arial",10)).pack()
self.BT1=Button(self.ventana,text="Pedir Carta",command=self.button).pack(pady=10, fill=X)
self.BT2=Button(self.ventana,text="Terminar Partida", command=self.terminar).pack(fill=X)
self.Lpuntaje=Label(self.ventana,text="Puntaje: "+str(self.cuenta),font=("Arial",12,"bold"))
self.Lpuntaje.place(x=10,y=200)
def button(self):
mazo=random.choice(self.mazos)
numero=random.choice(self.numeros)
carta=mazo+numero
self.imagenes.append(Imagenes.get_imagen(self.dirImagenes+carta+".png", 80, 80))
label=Label(self.ventana, image=self.imagenes[self.indice])
label.place(x=self.c,y=300)
self.lables.append(label)
self.c=self.c+60
if numero=="0" or numero=="K" or numero=="Q" or numero=="J":
self.cuenta=self.cuenta+10
elif numero=="1":
self.suventana=Toplevel()
self.suventana.geometry("180x70")
self.ET2=Label(self.suventana,text="¿Quieres que tu As valga 1 u 11?").grid(column=0,row=0,columnspan=2)
self.BT3=Button(self.suventana,text="valor: 1",command=lambda : self.valor_as(1)).grid(column=0,row=1,padx=10,pady=10)
self.BT4=Button(self.suventana,text="valor: 11",command=lambda :self.valor_as(2)).grid(column=1,row=1,padx=10,pady=10)
else:
self.cuenta=self.cuenta+int(numero)
self.Lpuntaje.config(text="Puntaje: "+str(self.cuenta))
self.indice = self.indice + 1
self.check_win(self.cuenta)
def check_win(self,valor):
if valor==21:
tkMessageBox.showinfo("Ganador","Has ganado")
self.continuar()
elif valor>21:
tkMessageBox.showinfo("Perdedor","Has perdido")
self.continuar()
def continuar(self):
continuar = tkMessageBox.askyesno("Salir", "¿Deseas jugar otra partida?")
if continuar:
self.indice = 0
self.cuenta=0
self.c = 0
self.Lpuntaje.config(text="Puntaje: 0")
for i in range(0,len(self.imagenes), 1):
label=self.lables[i]
label.destroy()
del self.lables[:]
del self.imagenes[:]
else:
self.ventana.destroy()
def valor_as(self,valor):
if valor==1:
self.cuenta=self.cuenta+1
if valor==2:
self.cuenta=self.cuenta+11
self.Lpuntaje.config(text="Puntaje: " + str(self.cuenta))
self.suventana.destroy()
def terminar(self):
tkMessageBox.showinfo("Perdedor", "Has perdido")
self.continuar()
app=app()
Salida:
Material de descarga: click aqui
Nota: Los links incluyen el uso de un acortador, favor de resolver el captcha y esperar los 3 segundos que indica el acortador, se recomienda desabilitar el uso de bloqueadores de publicidad
Comentarios
Publicar un comentario