Skip to content

Commit

Permalink
Update Memory_game.py
Browse files Browse the repository at this point in the history
  • Loading branch information
malak495 authored Feb 7, 2025
1 parent 4e3116b commit 46e85b7
Showing 1 changed file with 110 additions and 69 deletions.
179 changes: 110 additions & 69 deletions Memory_game.py
Original file line number Diff line number Diff line change
@@ -1,71 +1,112 @@
import random
import pygame
import sys

import simplegui


def new_game():
global card3, po, state, exposed, card1

def create(card):
while len(card) != 8:
num = random.randrange(0, 8)
if num not in card:
card.append(num)
return card

card3 = []
card1 = []
card2 = []
po = []
card1 = create(card1)
card2 = create(card2)
card1.extend(card2)
random.shuffle(card1)
state = 0
exposed = []
for i in range(0, 16, 1):
exposed.insert(i, False)


def mouseclick(pos):
global card3, po, state, exposed, card1
if state == 2:
if card3[0] != card3[1]:
exposed[po[0]] = False
exposed[po[1]] = False
card3 = []
state = 0
po = []
ind = pos[0] // 50
card3.append(card1[ind])
po.append(ind)
if exposed[ind] == False and state < 2:
exposed[ind] = True
state += 1


def draw(canvas):
global card1
gap = 0
for i in range(0, 16, 1):
if exposed[i] == False:
canvas.draw_polygon(
[[0 + gap, 0], [0 + gap, 100], [50 + gap, 100], [50 + gap, 0]],
1,
"Black",
"Green",
)
elif exposed[i] == True:
canvas.draw_text(str(card1[i]), [15 + gap, 65], 50, "White")
gap += 50


frame = simplegui.create_frame("Memory", 800, 100)
frame.add_button("Reset", new_game)
label = frame.add_label("Turns = 0")

frame.set_mouseclick_handler(mouseclick)
frame.set_draw_handler(draw)

new_game()
frame.start()
# Initialisation de pygame
pygame.init()

# Définir les couleurs
WHITE = (255, 255, 255)
PASTEL_PINK = (255, 182, 193)
PINK = (255, 105, 180)
LIGHT_PINK = (255, 182, 193)
GREY = (169, 169, 169)

# Définir les dimensions de la fenêtre
WIDTH = 600
HEIGHT = 600
FPS = 30
CARD_SIZE = 100

# Créer la fenêtre
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Memory Game : Les Préférences de Malak")

# Charger les polices
font = pygame.font.Font(None, 40)
font_small = pygame.font.Font(None, 30)

# Liste des questions et réponses (préférences)
questions = [
{"question": "Quelle est sa couleur préférée ?", "réponse": "Rose", "image": "rose.jpg"},
{"question": "Quel est son plat préféré ?", "réponse": "Pizza", "image": "pizza.jpg"},
{"question": "Quel est son animal préféré ?", "réponse": "Chat", "image": "chat.jpg"},
{"question": "Quel est son film préféré ?", "réponse": "La La Land", "image": "lalaland.jpg"}
]

# Créer les cartes avec des questions et réponses
cards = []
for q in questions:
cards.append(q["réponse"])
cards.append(q["réponse"])

# Mélanger les cartes
random.shuffle(cards)

# Créer un dictionnaire pour les positions des cartes
card_positions = [(x * CARD_SIZE, y * CARD_SIZE) for x in range(4) for y in range(4)]

# Fonction pour afficher le texte
def display_text(text, font, color, x, y):
text_surface = font.render(text, True, color)
screen.blit(text_surface, (x, y))

# Fonction pour dessiner les cartes
def draw_cards():
for idx, pos in enumerate(card_positions):
x, y = pos
if visible[idx]:
pygame.draw.rect(screen, WHITE, pygame.Rect(x, y, CARD_SIZE, CARD_SIZE))
display_text(cards[idx], font, PINK, x + 10, y + 30)
else:
pygame.draw.rect(screen, LIGHT_PINK, pygame.Rect(x, y, CARD_SIZE, CARD_SIZE))
pygame.draw.rect(screen, GREY, pygame.Rect(x, y, CARD_SIZE, CARD_SIZE), 5)

# Variables du jeu
visible = [False] * len(cards)
flipped_cards = []
score = 0

# Boucle principale du jeu
running = True
while running:
screen.fill(PASTEL_PINK)
draw_cards()
display_text("Score: " + str(score), font_small, PINK, 20, 20)

for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if event.type == pygame.MOUSEBUTTONDOWN:
x, y = pygame.mouse.get_pos()
col = x // CARD_SIZE
row = y // CARD_SIZE
card_idx = row * 4 + col

if not visible[card_idx]:
visible[card_idx] = True
flipped_cards.append(card_idx)

if len(flipped_cards) == 2:
if cards[flipped_cards[0]] == cards[flipped_cards[1]]:
score += 1
else:
pygame.time.delay(1000)
visible[flipped_cards[0]] = visible[flipped_cards[1]] = False
flipped_cards.clear()

if score == len(questions):
display_text("Félicitations ! Vous êtes officiellement le plus grand fan de Malak.", font, PINK, 100, HEIGHT // 2)
display_text("Mais… Pour accéder au prix ultime (photo ultra exclusive + certificat de starlette n°1),", font_small, PINK, 30, HEIGHT // 2 + 40)
display_text("veuillez envoyer 1000$ à Malak Inc.", font_small, PINK, 150, HEIGHT // 2 + 70)
display_text("(paiement accepté en chocolat, câlins ou virement bancaire immédiat)", font_small, PINK, 100, HEIGHT // 2 + 100)
pygame.display.update()
pygame.time.delay(3000)
running = False

pygame.display.update()
pygame.time.Clock().tick(FPS)

# Quitter pygame
pygame.quit()
sys.exit()

0 comments on commit 46e85b7

Please sign in to comment.