Esempio n. 1
0
def main():
    # DRAWING AND INIT
    # VARIABLES
    global d
    global p
    global playerChips
    deck = casino.cards()
    cardList = deck.getCards()
    d = casino.dealer(cardList)
    p = casino.player(cardList)
    playerCards = p.deal()
    dealerCards = d.deal()
    allowHit = False
    playerReveal = False
    playerTurn = True
    playerStay = False
    onTable[2] = [cardImage(dealerCards[0][0], dealerCards[0][1]), 675, 50]
    onTable[3] = [cardBack, 500, 50]
    while True:

        pygame.display.update()
        clock.tick(60)
        # PLAYER DECISION
        if playerReveal == False:
            drawCard(cardBack, 675, 650)
            drawCard(cardBack, 500, 650)
            label = smallFont.render('Press space to reveal cards', 1,
                                     (255, 255, 255))
            screen.blit(label, (430, 850))
            ev = pygame.event.poll()
            if ev.type == pygame.QUIT:
                pygame.quit()
            if ev.type == pygame.KEYDOWN:
                if ev.key == pygame.K_SPACE:
                    # Show cards
                    playerReveal = True
                    allowHit = True
                    drawCard(cardImage(playerCards[0][0], playerCards[0][1]),
                             675, 650)
                    drawCard(cardImage(playerCards[1][0], playerCards[1][1]),
                             500, 650)
                    onTable[0] = [
                        cardImage(playerCards[0][0], playerCards[0][1]), 675,
                        650
                    ]
                    onTable[1] = [
                        cardImage(playerCards[1][0], playerCards[1][1]), 500,
                        650
                    ]
                    pygame.draw.rect(screen, (0, 128, 0), (429, 849, 550, 100))
            pygame.display.update()
        else:
            label = smallFont.render('Press space to hit and tab to stay', 1,
                                     (255, 255, 255))
            screen.blit(label, (350, 850))
            updateScore()
            pygame.display.update()

            ev = pygame.event.poll()
            if ev.type == pygame.QUIT:
                pygame.quit()
            if ev.type == pygame.KEYDOWN:
                if ev.key == pygame.K_TAB:
                    playerStay = True
                    updateScore(True)
                if ev.key == pygame.K_SPACE:

                    if allowHit:
                        hitCard = p.hit()
                        if len(p.cards) == 3:
                            dealplayerHit(cardImage(hitCard[0], hitCard[1]),
                                          325, 650)
                            drawCard(cardImage(hitCard[0], hitCard[1]), 325,
                                     650)
                            updateScore()
                        elif len(p.cards) == 4:
                            dealplayerHit(cardImage(hitCard[0], hitCard[1]),
                                          850, 650)
                            drawCard(cardImage(hitCard[0], hitCard[1]), 850,
                                     650)
                            updateScore()
                        elif len(p.cards) == 5:
                            dealplayerHit(cardImage(hitCard[0], hitCard[1]),
                                          150, 650)
                            drawCard(cardImage(hitCard[0], hitCard[1]), 150,
                                     650)
                            updateScore()
                        elif len(p.cards) == 6:
                            dealplayerHit(cardImage(hitCard[0], hitCard[1]),
                                          1025, 650)
                            drawCard(cardImage(hitCard[0], hitCard[1]), 1025,
                                     650)
                            updateScore()
                    allowHit = True
                    pygame.display.update()

            if p.getScore() > 21:
                label = myfont.render('You Went Over 21 :(', 1,
                                      (255, 255, 255))
                screen.blit(label, (300, 430))
                allowHit = False
                updateChips()
                pygame.display.update()
                time.sleep(1)
                pygame.draw.rect(screen, (0, 128, 0), (0, 640, 1300, 200))
                pygame.draw.rect(screen, (0, 128, 0), (200, 40, 1300, 200))
                pygame.display.update()
                break

            elif p.getScore() == 21 and len(p.cards) == 2:
                allowHit = False
                playerChips += betChips * 3
                label = myfont.render('BLACK JACK!', 1, (255, 255, 255))
                screen.blit(label, (420, 430))
                updateChips()
                pygame.display.update()
                time.sleep(1)
                pygame.draw.rect(screen, (0, 128, 0), (0, 640, 1300, 200))
                pygame.draw.rect(screen, (0, 128, 0), (200, 40, 1300, 200))
                pygame.display.update()
                break

            elif playerStay:
                playerTurn = False
                allowHit = False
                updateScore()
                pygame.display.update()


# ---------------------------------------------------------------------------------------------------------
# DEALER

        if playerTurn == False:
            drawCard(cardImage(dealerCards[1][0], dealerCards[1][1]), 500, 50)
            try:
                ind = onTable.index([cardBack, 500, 50])
                onTable[ind] = [
                    cardImage(dealerCards[1][0], dealerCards[1][1]), 500, 50
                ]
            except:
                pass
            updateScore()
            if len(d.cards) > 2:
                dealplayerHit(cardImage(dealerCards[2][0], dealerCards[2][1]),
                              325, 50)
                drawCard(cardImage(dealerCards[2][0], dealerCards[2][1]), 325,
                         50)
                pygame.display.update()
                time.sleep(0.3)
            if len(d.cards) > 3:
                dealplayerHit(cardImage(dealerCards[3][0], dealerCards[3][1]),
                              850, 50)
                drawCard(cardImage(dealerCards[3][0], dealerCards[3][1]), 850,
                         50)
                pygame.display.update()
                time.sleep(0.3)
            if len(d.cards) > 4:
                dealplayerHit(cardImage(dealerCards[4][0], dealerCards[4][1]),
                              150, 50)
                drawCard(cardImage(dealerCards[4][0], dealerCards[4][1]), 150,
                         50)
                pygame.display.update()
                time.sleep(0.3)
            if len(d.cards) > 5:
                dealplayerHit(cardImage(dealerCards[5][0], dealerCards[5][1]),
                              1025, 50)
                drawCard(cardImage(dealerCards[5][0], dealerCards[5][1]), 1025,
                         50)
                pygame.display.update()
                time.sleep(0.3)
            updateScore(True)

            if d.getScore() > p.getScore():
                if d.getScore() < 22:
                    label = myfont.render('You Lost', 1, (255, 255, 255))
                    screen.blit(label, (510, 430))
                    updateChips()
                    pygame.display.update()
                    break
                else:
                    playerChips += betChips * 2
                    label = myfont.render('Dealer Bust\'s, You Win', 1,
                                          (255, 255, 255))
                    screen.blit(label, (230, 430))
                    updateChips()
                    pygame.display.update()
                    break
            elif d.getScore() < p.getScore():
                playerChips += betChips * 2
                label = myfont.render('Winner!', 1, (255, 255, 255))
                screen.blit(label, (475, 430))
                updateChips()
                pygame.display.update()
                break
            else:
                playerChips += betChips
                label = myfont.render('Tie', 1, (255, 255, 255))
                screen.blit(label, (600, 450))
                updateChips()
                pygame.display.update()
                break
        else:
            drawCard(cardImage(dealerCards[0][0], dealerCards[0][1]), 675, 50)
            drawCard(cardBack, 500, 50)
    time.sleep(1)

    reset()
    restart()
Esempio n. 2
0
def main():
    # рисование и создание
    global d
    global p
    global playerChips
    deck = casino.cards()
    cardList = deck.getCards()
    d = casino.dealer(cardList)
    p = casino.player(cardList)
    playerCards = p.deal()
    dealerCards = d.deal()
    allowHit = False
    playerReveal = False
    playerTurn = True
    playerStay = False
    onTable[2] = [cardImage(dealerCards[0][0], dealerCards[0][1]), 675, 50]
    onTable[3] = [cardBack, 500, 50]
    while True:
        pygame.display.update()
        clock.tick(60)
        # выбор игрока
        if playerReveal == False:
            drawCard(cardBack, 675, 650)
            drawCard(cardBack, 500, 650)
            label = smallFont.render('Открыть карты(пробел)', 1,
                                     (255, 255, 255))
            screen.blit(label, (430, 850))
            ev = pygame.event.poll()
            if ev.type == pygame.QUIT:
                pygame.quit()
            if ev.type == pygame.KEYDOWN:
                if ev.key == pygame.K_SPACE:
                    # показать карты
                    playerReveal = True
                    allowHit = True
                    drawCard(cardImage(playerCards[0][0], playerCards[0][1]),
                             675, 650)
                    drawCard(cardImage(playerCards[1][0], playerCards[1][1]),
                             500, 650)
                    onTable[0] = [
                        cardImage(playerCards[0][0], playerCards[0][1]), 675,
                        650
                    ]
                    onTable[1] = [
                        cardImage(playerCards[1][0], playerCards[1][1]), 500,
                        650
                    ]
                    pygame.draw.rect(screen, (0, 128, 0), (429, 849, 550, 100))
            pygame.display.update()
        else:
            label = smallFont.render('Взять карту(пробел), стоп(таб)', 1,
                                     (255, 255, 255))
            screen.blit(label, (350, 850))
            updateScore()
            pygame.display.update()

            ev = pygame.event.poll()
            if ev.type == pygame.QUIT:
                pygame.quit()
            if ev.type == pygame.KEYDOWN:
                if ev.key == pygame.K_TAB:
                    playerStay = True
                    updateScore(True)
                if ev.key == pygame.K_SPACE:

                    if allowHit:
                        hitCard = p.hit()
                        if len(p.cards) == 3:
                            dealplayerHit(cardImage(hitCard[0], hitCard[1]),
                                          325, 650)
                            drawCard(cardImage(hitCard[0], hitCard[1]), 325,
                                     650)
                            updateScore()
                        elif len(p.cards) == 4:
                            dealplayerHit(cardImage(hitCard[0], hitCard[1]),
                                          850, 650)
                            drawCard(cardImage(hitCard[0], hitCard[1]), 850,
                                     650)
                            updateScore()
                        elif len(p.cards) == 5:
                            dealplayerHit(cardImage(hitCard[0], hitCard[1]),
                                          150, 650)
                            drawCard(cardImage(hitCard[0], hitCard[1]), 150,
                                     650)
                            updateScore()
                        elif len(p.cards) == 6:
                            dealplayerHit(cardImage(hitCard[0], hitCard[1]),
                                          1025, 650)
                            drawCard(cardImage(hitCard[0], hitCard[1]), 1025,
                                     650)
                            updateScore()
                    allowHit = True
                    pygame.display.update()

            if p.getScore() > 21:
                label = myfont.render('Перебор :(', 1, (255, 255, 255))
                screen.blit(label, (300, 430))
                allowHit = False
                updateChips()
                pygame.display.update()
                time.sleep(1)
                pygame.draw.rect(screen, (0, 128, 0), (0, 640, 1300, 200))
                pygame.draw.rect(screen, (0, 128, 0), (200, 40, 1300, 200))
                pygame.display.update()
                break

            elif p.getScore() == 21 and len(p.cards) == 2:
                allowHit = False
                playerChips += betChips * 3
                label = myfont.render('BLACK JACK!', 1, (255, 255, 255))
                screen.blit(label, (420, 430))
                updateChips()
                pygame.display.update()
                time.sleep(1)
                pygame.draw.rect(screen, (0, 128, 0), (0, 640, 1300, 200))
                pygame.draw.rect(screen, (0, 128, 0), (200, 40, 1300, 200))
                pygame.display.update()
                break

            elif playerStay:
                playerTurn = False
                allowHit = False
                updateScore()
                pygame.display.update()
        # Диллер

        if playerTurn == False:
            drawCard(cardImage(dealerCards[1][0], dealerCards[1][1]), 500, 50)
            try:
                ind = onTable.index([cardBack, 500, 50])
                onTable[ind] = [
                    cardImage(dealerCards[1][0], dealerCards[1][1]), 500, 50
                ]
            except:
                pass

            updateScore()

            if len(d.cards) > 2:
                dealplayerHit(cardImage(dealerCards[2][0], dealerCards[2][1]),
                              325, 50)
                drawCard(cardImage(dealerCards[2][0], dealerCards[2][1]), 325,
                         50)
                pygame.display.update()
                time.sleep(0.3)
            if len(d.cards) > 3:
                dealplayerHit(cardImage(dealerCards[3][0], dealerCards[3][1]),
                              850, 50)
                drawCard(cardImage(dealerCards[3][0], dealerCards[3][1]), 850,
                         50)
                pygame.display.update()
                time.sleep(0.3)
            if len(d.cards) > 4:
                dealplayerHit(cardImage(dealerCards[4][0], dealerCards[4][1]),
                              150, 50)
                drawCard(cardImage(dealerCards[4][0], dealerCards[4][1]), 150,
                         50)
                pygame.display.update()
                time.sleep(0.3)
            if len(d.cards) > 5:
                dealplayerHit(cardImage(dealerCards[5][0], dealerCards[5][1]),
                              1025, 50)
                drawCard(cardImage(dealerCards[5][0], dealerCards[5][1]), 1025,
                         50)
                pygame.display.update()
                time.sleep(0.3)
            updateScore(True)

            if d.getScore() > p.getScore():
                if d.getScore() < 22:
                    label = myfont.render('Проигрыш', 1, (255, 255, 255))
                    screen.blit(label, (510, 430))
                    updateChips()
                    pygame.display.update()
                    break
                else:
                    playerChips += betChips * 2
                    label = myfont.render('У дилера перебор, выигрыш', 1,
                                          (255, 255, 255))
                    screen.blit(label, (230, 430))
                    updateChips()
                    pygame.display.update()
                    break
            elif d.getScore() < p.getScore():
                playerChips += betChips * 2
                label = myfont.render('Успех!', 1, (255, 255, 255))
                screen.blit(label, (475, 430))
                updateChips()
                pygame.display.update()
                break
            else:
                playerChips += betChips
                label = myfont.render('Ничья', 1, (255, 255, 255))
                screen.blit(label, (600, 450))
                updateChips()
                pygame.display.update()
                break
        else:
            drawCard(cardImage(dealerCards[0][0], dealerCards[0][1]), 675, 50)
            drawCard(cardBack, 500, 50)
    time.sleep(1)
    reset()
    restart()
Esempio n. 3
0
import tkinter as tk
from tkinter import messagebox

#@author Christian Sfeir

pygame.init()
cardBack = pygame.image.load(os.path.join('png', 'cardBack.png'))
screen = pygame.display.set_mode((1300, 900))
pygame.display.set_caption('Black Jack')
clock = pygame.time.Clock()
myfont = pygame.font.SysFont('monospace', 70)
smallFont = pygame.font.SysFont('monospace', 30)
bg = pygame.image.load(os.path.join('back', 'background.jfif'))
screen.fill((0, 128, 0))
clock = pygame.time.Clock()
deck = casino.cards()
cardList = deck.getCards()
d = casino.dealer(cardList)
p = casino.player(cardList)

pygame.display.flip()

onTable = []
topCards = []

cardImg = [None]
two_clubs = pygame.image.load(os.path.join('png', '2_of_clubs.png'))
two_diamonds = pygame.image.load(os.path.join('png', '2_of_diamonds.png'))
two_hearts = pygame.image.load(os.path.join('png', '2_of_hearts.png'))
two_spades = pygame.image.load(os.path.join('png', '2_of_spades.png'))
import casino
import pygame
import time

pygame.init()
cardBack = pygame.image.load('cardBack.png')
screen = pygame.display.set_mode((1300, 900))
pygame.display.set_caption('Black Jack')
clock = pygame.time.Clock()
myfont = pygame.font.SysFont('monospace', 50)
smallFont = pygame.font.SysFont('monospace', 30)
screen.fill((0, 128, 0))
dec = casino.cards()
cardList = dec.getCards()
d = casino.dealer(cardList)
p = casino.player(cardList)

pygame.display.flip()

onTable = []
topCards = []

cardImg = [None]
# Load 52 Images
two_clubs = pygame.image.load('2_of_clubs.png')
two_diamonds = pygame.image.load('2_of_diamonds.png')
two_hearts = pygame.image.load('2_of_hearts.png')
two_spades = pygame.image.load('2_of_spades.png')

three_clubs = pygame.image.load('3_of_clubs.png')
three_spades = pygame.image.load('3_of_spades.png')