import pygame
import random
pygame.init()
#dimensions
width = 800
height = 600
# creating screen
screen = pygame.display.set_mode((width, height))
running = True
# loading card images
diamond_2 = pygame.image.load('2D.png')
clover_2 = pygame.image.load('2C.png')
heart_2 = pygame.image.load('2H.png')
spade_2 = pygame.image.load('2S.png')
diamond_3 = pygame.image.load('3D.png')
clover_3 = pygame.image.load('3C.png')
heart_3 = pygame.image.load('3H.png')
spade_3 = pygame.image.load('2S.png')
diamond_4 = pygame.image.load('4D.png')
clover_4 = pygame.image.load('4C.png')
heart_4 = pygame.image.load('4H.png')
spade_4 = pygame.image.load('4S.png')
diamond_5 = pygame.image.load('5D.png')
clover_5 = pygame.image.load('5C.png')
heart_5 = pygame.image.load('5H.png')
spade_5 = pygame.image.load('5S.png')
diamond_6 = pygame.image.load('6D.png')
clover_6 = pygame.image.load('6C.png')
heart_6 = pygame.image.load('6H.png')
spade_6 = pygame.image.load('6S.png')
diamond_7 = pygame.image.load('7D.png')
clover_7 = pygame.image.load('7C.png')
heart_7 = pygame.image.load('7H.png')
spade_7 = pygame.image.load('7S.png')
diamond_8 = pygame.image.load('8D.png')
clover_8 = pygame.image.load('8C.png')
heart_8 = pygame.image.load('8H.png')
spade_8 = pygame.image.load('8S.png')
diamond_9 = pygame.image.load('9D.png')
clover_9 = pygame.image.load('9C.png')
heart_9 = pygame.image.load('9H.png')
spade_9 = pygame.image.load('9S.png')
diamond_10 = pygame.image.load('10D.png')
clover_10 = pygame.image.load('10C.png')
heart_10 = pygame.image.load('10H.png')
spade_10 = pygame.image.load('10S.png')
diamond_j = pygame.image.load('JD.png')
clover_j = pygame.image.load('JC.png')
heart_j = pygame.image.load('JH.png')
spade_j = pygame.image.load('JS.png')
diamond_q = pygame.image.load('QD.png')
clover_q = pygame.image.load('QC.png')
heart_q = pygame.image.load('QH.png')
spade_q = pygame.image.load('QS.png')
diamond_k = pygame.image.load('KD.png')
clover_k = pygame.image.load('KC.png')
heart_k = pygame.image.load('KH.png')
spade_k = pygame.image.load('KS.png')
diamond_a = pygame.image.load('AD.png')
clover_a = pygame.image.load('AC.png')
heart_a = pygame.image.load('AH.png')
spade_a = pygame.image.load('AS.png')
# creates game icon
def icon():
pygame.display.set_caption("Blackjack")
icon = pygame.image.load('jack.jpg')
pygame.display.set_icon(icon)
# knight image
def knight_img():
knight = pygame.image.load('knight.png')
knightX = 295
knightY = 430
screen.blit(knight, (knightX, knightY))
# chatbox image
def chatbox_img():
chatbox = pygame.image.load('chatbox.png')
chatboxX = 405
chatboxY = 395
screen.blit(chatbox, (chatboxX, chatboxY))
# game ui
def game_ui():
green_background = screen.fill((10, 108, 3))
# generates random card
def random_card():
num = random.randint(1, 13)
return num
# generates random card face
def random_face():
possible_faces = 'DCHS'
return random.choice(possible_faces)
# player 1 avatar
def player1_avatar():
p1_avatar = pygame.image.load('p1.jpg')
p1_avatarX = 195
p1_avatarY = 130
screen.blit(p1_avatar, (p1_avatarX, p1_avatarY))
# player 2 avatar
def player2_avatar():
p2_avatar = pygame.image.load('p2.jpg')
p2_avatarX = 495
p2_avatarY = 130
screen.blit(p2_avatar, (p2_avatarX, p2_avatarY))
# player 3 avatar
def player3_avatar():
p3_avatar = pygame.image.load('p3.png')
p3_avatarX = 495
p3_avatarY = 230
screen.blit(p3_avatar, (p3_avatarX, p3_avatarY))
# player 4 avatar
def player4_avatar():
p4_avatar = pygame.image.load('p4.jpg')
p4_avatarX = 195
p4_avatarY = 230
screen.blit(p4_avatar, (p4_avatarX, p4_avatarY))
# blacjack game
def blackjack_game():
jack = 'JACK'
queen = 'QUEEN'
king = 'KING'
ace = 'ACE'
total_num_p1 = 0
limit = 21
total_num_p2 = 0
# player 1 turn
def player1_turn():
pass
# player 2 turn
def player2_turn():
pass
# converts card to correct image
def card_to_img():
x = random_card()
if x == 2:
face = random_face()
card = str(x) + face
if card == '2D':
diamond_2X = 295
diamond_2Y = 430
screen.blit(diamond_2, (diamond_2X, diamond_2Y))
elif card == '2C':
clover_2X = 295
clover_2Y = 430
screen.blit(clover_2, (clover_2X, clover_2Y))
elif card == '2H':
heart_2X = 295
heart_2Y = 430
screen.blit(heart_2, (heart_2X, heart_2Y))
else:
spade_2X = 295
spade_2Y = 430
screen.blit(spade_2, (spade_2X, spade_2Y))
elif x == 3:
face = random_face()
card = str(x) + face
if card == '3D':
diamond_3X = 295
diamond_3Y = 430
screen.blit(diamond_3, (diamond_3X, diamond_3Y))
elif card == '3C':
clover_3X = 295
clover_3Y = 430
screen.blit(clover_3, (clover_3X, clover_3Y))
elif card == '3H':
heart_3X = 295
heart_3Y = 430
screen.blit(heart_3, (heart_3X, heart_3Y))
else:
spade_3X = 295
spade_3Y = 430
screen.blit(spade_3, (spade_3X, spade_3Y))
elif x == 4:
face = random_face()
card = str(x) + face
if card == '4D':
diamond_4X = 295
diamond_4Y = 430
screen.blit(diamond_4, (diamond_4X, diamond_4Y))
elif card == '4C':
clover_4X = 295
clover_4Y = 430
screen.blit(clover_4, (clover_4X, clover_4Y))
elif card == '4H':
heart_4X = 295
heart_4Y = 430
screen.blit(heart_4, (heart_4X, heart_4Y))
else:
spade_4X = 295
spade_4Y = 430
screen.blit(spade_4, (spade_4X, spade_4Y))
elif x == 5:
face = random_face()
card = str(x) + face
if card == '5D':
diamond_5X = 295
diamond_5Y = 430
screen.blit(diamond_5, (diamond_5X, diamond_5Y))
elif card == '5C':
clover_5X = 295
clover_5Y = 430
screen.blit(clover_5, (clover_5X, clover_5Y))
elif card == '5H':
heart_5X = 295
heart_5Y = 430
screen.blit(heart_5, (heart_5X, heart_5Y))
else:
spade_5X = 295
spade_5Y = 430
screen.blit(spade_5, (spade_5X, spade_5Y))
elif x == 6:
face = random_face()
card = str(x) + face
if card == '6D':
diamond_6X = 295
diamond_6Y = 430
screen.blit(diamond_6, (diamond_6X, diamond_6Y))
elif card == '6C':
clover_6X = 295
clover_6Y = 430
screen.blit(clover_6, (clover_6X, clover_6Y))
elif card == '6H':
heart_6X = 295
heart_6Y = 430
screen.blit(heart_6, (heart_6X, heart_6Y))
else:
spade_6X = 295
spade_6Y = 430
screen.blit(spade_6, (spade_6X, spade_6Y))
elif x == 7:
face = random_face()
card = str(x) + face
if card == '7D':
diamond_7X = 295
diamond_7Y = 430
screen.blit(diamond_7, (diamond_7X, diamond_7Y))
elif card == '7C':
clover_7X = 295
clover_7Y = 430
screen.blit(clover_7, (clover_7X, clover_7Y))
elif card == '7H':
heart_7X = 295
heart_7Y = 430
screen.blit(heart_7, (heart_7X, heart_7Y))
else:
spade_7X = 295
spade_7Y = 430
screen.blit(spade_7, (spade_7X, spade_7Y))
elif x == 8:
face = random_face()
card = str(x) + face
if card == '8D':
diamond_8X = 295
diamond_8Y = 430
screen.blit(diamond_8, (diamond_8X, diamond_8Y))
elif card == '8C':
clover_8X = 295
clover_8Y = 430
screen.blit(clover_8, (clover_8X, clover_8Y))
elif card == '8H':
heart_8X = 295
heart_8Y = 430
screen.blit(heart_8, (heart_8X, heart_8Y))
else:
spade_8X = 295
spade_8Y = 430
screen.blit(spade_8, (spade_8X, spade_8Y))
elif x == 9:
face = random_face()
card = str(x) + face
if card == '9D':
diamond_9X = 295
diamond_9Y = 430
screen.blit(diamond_9, (diamond_9X, diamond_9Y))
elif card == '9C':
clover_9X = 295
clover_9Y = 430
screen.blit(clover_9, (clover_9X, clover_9Y))
elif card == '9H':
heart_9X = 295
heart_9Y = 430
screen.blit(heart_9, (heart_9X, heart_9Y))
else:
spade_9X = 295
spade_9Y = 430
screen.blit(spade_9, (spade_9X, spade_9Y))
elif x == 10:
face = random_face()
card = str(x) + face
if card == '10D':
diamond_10X = 295
diamond_10Y = 430
screen.blit(diamond_10, (diamond_10X, diamond_10Y))
elif card == '10C':
clover_10X = 295
clover_10Y = 430
screen.blit(clover_10, (clover_10X, clover_10Y))
elif card == '10H':
heart_10X = 295
heart_10Y = 430
screen.blit(heart_10, (heart_10X, heart_10Y))
else:
spade_10X = 295
spade_10Y = 430
screen.blit(spade_10, (spade_10X, spade_10Y))
elif x == 11:
face = random_face()
card = str(x) + face
if card == '11D':
diamond_jX = 295
diamond_jY = 430
screen.blit(diamond_j, (diamond_jX, diamond_jY))
elif card == '11C':
clover_jX = 295
clover_jY = 430
screen.blit(clover_j, (clover_jX, clover_jY))
elif card == '11H':
heart_jX = 295
heart_jY = 430
screen.blit(heart_j, (heart_jX, heart_jY))
else:
spade_jX = 295
spade_jY = 430
screen.blit(spade_j, (spade_jX, spade_jY))
elif x == 12:
face = random_face()
card = str(x) + face
if card == '12D':
diamond_qX = 295
diamond_qY = 430
screen.blit(diamond_q, (diamond_qX, diamond_qY))
elif card == '12C':
clover_qX = 295
clover_qY = 430
screen.blit(clover_q, (clover_qX, clover_qY))
elif card == '12H':
heart_qX = 295
heart_qY = 430
screen.blit(heart_q, (heart_qX, heart_qY))
else:
spade_qX = 295
spade_qY = 430
screen.blit(spade_q, (spade_qX, spade_qY))
elif x == 13:
face = random_face()
card = str(x) + face
if card == '13D':
diamond_kX = 295
diamond_kY = 430
screen.blit(diamond_k, (diamond_kX, diamond_kY))
elif card == '13C':
clover_kX = 295
clover_kY = 430
screen.blit(clover_k, (clover_kX, clover_kY))
elif card == '13H':
heart_kX = 295
heart_kY = 430
screen.blit(heart_k, (heart_kX, heart_kY))
else:
spade_kX = 295
spade_kY = 430
screen.blit(spade_k, (spade_kX, spade_kY))
else:
face = random_face()
card = str(x) + face
if card == '14D':
diamond_aX = 295
diamond_aY = 430
screen.blit(diamond_a, (diamond_aX, diamond_aY))
elif card == '14C':
clover_aX = 295
clover_aY = 430
screen.blit(clover_a, (clover_aX, clover_aY))
elif card == '14H':
heart_aX = 295
heart_aY = 430
screen.blit(heart_a, (heart_aX, heart_aY))
else:
spade_aX = 295
spade_aY = 430
screen.blit(spade_a, (spade_aX, spade_aY))
#while (total_num_p1 < limit) and (total_num_p2 < limit):
# s = input("Player1: Type 'HIT' to hit or 'PASS' to pass")
# if s == 'HIT':
# total_num_p1 += random_card()
# return (total_num_p1)
# s2 = input("Player2: Type 'HIT' to hit or 'PASS' to pass")
# if s2 == 'HIT':
# total_num_p2 += random_card()
# return (total_num_p2)
# if (total_num_p1 == 21) or ((total_num_p2 != 21) and total_num_p2 > 21):
# return ('Congrats Player1! You have won the game!')
# elif (total_num_p2 == 21) or ((total_num_p1 != 21) and total_num_p1 > 21):
# return ('Congrats Player2! You have won the game!')
# jack image
def jack_img():
jack = pygame.image.load('rsz_jack.png')
jackX = 295
jackY = 100
screen.blit(jack, (jackX, jackY))
# game title
def display_title_text():
title_font = pygame.font.Font('CARDC___.TTF', 64)
title_text = title_font.render("Blackjack", True, (0, 0, 0))
screen.blit(title_text, (202, 300))
# start button
def start_button():
button = pygame.Rect(195, 400, 100, 50)
pygame.draw.rect(screen, [0, 255, 0], button)
button_font = pygame.font.Font('GOODDP__.TTF', 32)
button_text = button_font.render("START!", True, (0, 0, 0))
screen.blit(button_text, (205, 410))
# NEED TO REWORK CLICKS SO IT NOTIFIES ONLY WHEN THE BUTTON IS PRESSED!
clicked = pygame.mouse.get_pressed()
if clicked[0] == 1:
print('Clicked left button!')
elif clicked[1] == 1:
print('Clicked middle button!')
elif clicked[-1] == 1:
print('Clicked right button!')
else:
pass
# quit button
def quit_button():
button = pygame.Rect(475, 400, 100, 50)
pygame.draw.rect(screen, [255, 0 ,0], button)
button_font = pygame.font.Font('GOODDP__.TTF', 32)
button_text = button_font.render("QUIT!", True, (0, 0, 0))
screen.blit(button_text, (500, 410))
clicked = pygame.mouse.get_pressed()
if clicked[0] == 1:
print('Clicked left button!')
elif clicked[1] == 1:
print('Clicked middle button!')
elif clicked[-1] == 1:
print('Clicked right button!')
else:
pass
# game win text
def display_gamewon_message():
gamewon_font = pygame.font.Font('GOODDP__.TTF', 64)
gamewon_text = gamewon_font.render("YOU WON!", True, (0, 0, 0))
screen.blit(gamewon_text, (292, 300))
# gameover text
def display_gameover_message():
gameover_font = pygame.font.Font('GOODDP__.TTF', 64)
gameover_text = gameover_font.render("GAME OVER", True, (0, 0, 0))
screen.blit(gameover_text, (292, 300))
# checks if the game is still running
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((150, 173, 252))
blackjack_game()
icon()
jack_img()
display_title_text()
quit_button()
start_button()
knight_img()
player1_avatar()
player2_avatar()
player3_avatar()
player4_avatar()
chatbox_img()
pygame.display.update()
Итак, у меня есть код, и у меня просто есть игра, которую я написал для работы в терминале, и уже сделал свой титульный экран для игры с кнопками. Что меня смущает, так это то, как я могу поместить все на экране заголовка как одну функцию, а все в игре - как другую функцию, так что когда пользователь нажимает кнопку запуска, я могу просто вызвать функцию game_l oop (), которая запустите мою игру и выйдите из титульного экрана.