Book Image

Tkinter GUI Programming by Example

Book Image

Tkinter GUI Programming by Example

Overview of this book

Tkinter is a modular, cross-platform application development toolkit for Python. When developing GUI-rich applications, the most important choices are which programming language(s) and which GUI framework to use. Python and Tkinter prove to be a great combination. This book will get you familiar with Tkinter by having you create fun and interactive projects. These projects have varying degrees of complexity. We'll start with a simple project, where you'll learn the fundamentals of GUI programming and the basics of working with a Tkinter application. After getting the basics right, we'll move on to creating a project of slightly increased complexity, such as a highly customizable Python editor. In the next project, we'll crank up the complexity level to create an instant messaging app. Toward the end, we'll discuss various ways of packaging our applications so that they can be shared and installed on other machines without the user having to learn how to install and run Python programs.
Table of Contents (18 chapters)
Title Page
Copyright and Credits
Packt Upsell
Contributors
Preface
Index

Blackjack's classes


We will begin by defining the classes which will be used in order to separate out different aspects of the game of blackjack. We will model three of the components of the game:

  • Card: A basic playing card. The card belongs to a suit and is worth a certain value.
  • Deck: A collection of cards. The deck shrinks as cards are drawn and contains 52 unique cards.
  • Hand: Each player's assigned cards. A hand is what defines each player's score and thus who wins.

Let's begin with the simplest concept—the Card.

The Card class

The Card class will be the first class we define, as both of our other classes will need to use it. Open up a new file and type the following code:

import random

class Card:
    def __init__(self, suit, value):
        self.suit = suit
        self.value = value

    def __repr__(self):
        return " of ".join((self.value, self.suit))

The only import we will need for our game is the random module. This will allow us to shuffle our virtual deck of cards at the beginning...