954,525 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Importing pictures, Pygame, Blackjack

Im writing a blackjack program to train one to count cards using the Hi-Lo System.

I found the engine online ( it was open sourced.) Instead of the code here using only numbers and Letters, i want to add only pictures of the cards instead of the numbers and card values. I need help. I recently downloaded pygame to help me import images. but i am having no luck.. Please take a look

#!/usr/bin/python

import Tkinter
import sys
import tkMessageBox
from random import shuffle
import pygame.image
import pygame.display

class cardTrainer:
    
    def __init__(self, master):
        
        #Define the deck of cards by list of representative strings
        self.deck = ['A', '2','3','4','5','6','7','8','9','10','J','K']            
        #Holds the current count
        self.current_count = 0
        
        #Holds the position in the deck of cards we got to
        self.current_card_position = 0
        
        #Boolean to hold weather the count loop is running
        self.count_running = False
        
        #Shuffle the cards
        shuffle(self.deck)
        
        #Define the Tkinter frame to hold the main interface
        frame = Tkinter.Frame(master)
        frame.pack(fill=Tkinter.X, expand=.5)
        
        #Define the interface

        
        self.label = Tkinter.Label(frame, text='BlackJack Card Counter')
        self.label.pack()

        
        self.slider = Tkinter.Scale(frame, from_=100, to=2000, orient=Tkinter.HORIZONTAL,
                                    showvalue=0, command=self.new_timerspeed)
        self.slider.set(2100)
        self.slider.pack(fill=Tkinter.X, expand=1)
        
        self.start = Tkinter.Button(frame, text='Deal', command=self.startDeal)
        self.start.pack()
        
        self.stop = Tkinter.Button(frame, text="Show count", command=self.stopDeal)
        self.stop.pack()
        
        self.exit = Tkinter.Button(frame, text="Quit", command=top.quit)
        self.exit.pack()

        self.label = Tkinter.Button(frame, text="Images", command=self.pic)
        self.label.pack()
                                    
    def startDeal(self):
        
        #Ignore button press if count is running
        if self.count_running == True:
            pass
        
        #Make the program know it's running
        self.count_running = True
        
        #Call the function that holds the main loop
        self.Deal()

    def pic(self):
         import pygame.display
         picture = pygame.image.load("ace.jpg")
         
    
    def Deal(self):
        
        if self.count_running == True:
            #Update label to show current card value
            self.label.config(text=self.deck[self.current_card_position])
            
            #Update the count value
            self.updateCount(self.deck[self.current_card_position])
            
            #Update the position in the deck we are at
            self.current_card_position += 1
            
            #if we have reached the end of the deck, shuffle and continue
            if self.current_card_position == len(self.deck):
                shuffle(self.deck)
                self.current_card_position = 0
            
            #Run this process again after a time period designated by the slider
            self.label.after(self.timerspeed, self.Deal)
        else:
            #update label to show that we finished and the last card value
            self.label.config(text = "The count has been stopped\n" +
                                self.deck[self.current_card_position])
        
            #Tell the user the count
            tkMessageBox.showinfo("The Count", "The count is:\n" + str(self.current_count))
            
            self.current_count = 0
    
    def updateCount(self, card):
        #Take the actual numerical value of the card
        card = card[1:]
        
        #Deine which Conditions make the count go up/down/stay the same
        self.conditions_up = ("A", "K", "Q", "J", "10")
        self.conditions_same=("7", "8", "9")
        self.conditions_down=("6", "5", "4", "3", "2")
        
        #Alter the count depending on which condition the card matches
        for value in self.conditions_up:
            if card == value:
                self.current_count -= 1
                break
        for value in self.conditions_same:
            if card == value:
                break
        for value in self.conditions_down:
            if card == value:
                self.current_count +=1
                break
    
    def stopDeal(self):
        #Make the main loop finish
        self.count_running = False
        
    def new_timerspeed(self, x):
        self.timerspeed = x

if __name__ == "__main__":
    top = Tkinter.Tk()
    top.geometry('500x500')
    app = cardTrainer(top)
    top.mainloop()
jeuxdeau2009
Newbie Poster
1 post since Feb 2011
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You
View similar articles that have also been tagged: