Memory Image - Partie 2

Pour afficher des images Ơ la place des chiffres dans le jeu de Memory, nous devons effectuer quelques modifications dans le code existant. Suivez les Ʃtapes ci-dessous :

lien replit : https://replit.com/@Qulbutokee/Memory-Images-Partie-2#main.py

Ɖtape 1 : PrĆ©paration des images

PrĆ©parez vos images en les plaƧant dans le mĆŖme rĆ©pertoire que votre script Python. Assurez-vous que les images ont les dimensions appropriĆ©es pour s’adapter aux cartes du jeu. Renommez les images en consĆ©quence pour qu’elles aient un nom cohĆ©rent avec les valeurs des cartes.

Ɖtape 2 : Chargement des images

Dans la section où nous gĆ©nĆ©rons les paires de cartes, nous allons remplacer les valeurs numĆ©riques par les chemins d’accĆØs aux images correspondantes. Pour cela, nous devons charger les images Ć  l’aide de la fonction pygame.image.load().

# GƩnƩration des paires de cartes
image_paths = [« image1.png », « image2.png », « image3.png », « image4.png », « image5.png », « image6.png », « image7.png », « image8.png »]
pairs = [str(i) for i in range((NUM_ROWS * NUM_COLS) // 2)] * 2
random.shuffle(pairs)

# Chargement des images et redimensionnement
images = []
for path in image_paths:
Ā  Ā  image = pygame.image.load(path)
Ā  Ā  image = pygame.transform.scale(image, (CARD_WIDTH, CARD_HEIGHT))
Ā  Ā  images.append(image)

Ici, nous avons ajouté une liste image_paths qui contient les chemins vers les images que vous souhaitez utiliser. Vous devez remplacer « image1.png », « image2.png », etc. par les chemins réels de vos images.

Ensuite, nous avons ajoutĆ© une boucle qui charge chaque image Ć  partir du chemin spĆ©cifiĆ©, puis redimensionne l’image pour qu’elle corresponde aux dimensions de la carte.

Ā 

# Dessiner les cartes
for card in cards:
    if card[« flipped »]:
        window.blit(images[int(card[« value »])], card[« rect »])
Ā  Ā  else:
        pygame.draw.rect(window, WHITE, card[« rect »])

Dans cette partie du code, nous avons modifiĆ© la boucle de dessin des cartes pour afficher les images Ć  la place des rectangles blancs. Si la carte est retournĆ©e (card[« flippedĀ Ā»] == True), nous utilisons window.blit() pour afficher l’image correspondante Ć  la valeur de la carte (int(card[« valueĀ Ā»])) Ć  la position de la carte.

Assurez-vous d’avoir les images dans le mĆŖme rĆ©pertoire que votre script Python, et de les nommer correctement dans la liste image_paths.

Assurez-vous de placer les images image1.png, image2.png, etc., dans le mĆŖme rĆ©pertoire que votre script Python. Assurez-vous Ć©galement d’adapter le chemin d’accĆØs aux images et les noms d’image dans la liste pairs pour correspondre Ć  vos propres images.

Avec ces modifications, le jeu affichera les images sur les cartes du Memory. Assurez-vous que les images sont correctement dimensionnĆ©es pour s’adapter aux cartes du jeu.

voici le code entier avec les images :Ā 

Ā 

import pygame
import random

# Initialisation de Pygame
pygame.init()

# DƩfinition des couleurs
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)

# Définition des dimensions de la fenêtre du jeu
WINDOW_WIDTH = 800
WINDOW_HEIGHT = 600

# DƩfinition des dimensions des cartes
CARD_WIDTH = 100
CARD_HEIGHT = 100
CARD_GAP = 10
NUM_ROWS = 4
NUM_COLS = 4

# Création de la fenêtre du jeu
window = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT))
pygame.display.set_caption(« Memory Game »)

# CrƩation de la police de texte
font = pygame.font.Font(None, 36)

# GƩnƩration des paires de cartes
image_paths = [« image1.png », « image2.png », « image3.png », « image4.png », « image5.png », « image6.png », « image7.png », « image8.png »]
pairs = [str(i) for i in range((NUM_ROWS * NUM_COLS) // 2)] * 2
random.shuffle(pairs)

# Chargement des images et redimensionnement
images = []
for path in image_paths:
Ā  Ā  image = pygame.image.load(path)
Ā  Ā  image = pygame.transform.scale(image, (CARD_WIDTH, CARD_HEIGHT))
Ā  Ā  images.append(image)

# CrƩation de la grille de cartes
cards = []
for row in range(NUM_ROWS):
Ā  Ā  for col in range(NUM_COLS):
Ā  Ā  Ā  Ā  x = col * (CARD_WIDTH + CARD_GAP) + (WINDOW_WIDTH – (CARD_WIDTH + CARD_GAP) * NUM_COLS) // 2
Ā  Ā  Ā  Ā  y = row * (CARD_HEIGHT + CARD_GAP) + (WINDOW_HEIGHT – (CARD_HEIGHT + CARD_GAP) * NUM_ROWS) // 2
Ā  Ā  Ā  Ā  card = {
            « value »: pairs.pop(),
            « rect »: pygame.Rect(x, y, CARD_WIDTH, CARD_HEIGHT),
            « flipped »: False,
            « matched »: False
Ā  Ā  Ā  Ā  }
Ā  Ā  Ā  Ā  cards.append(card)

# Variables de jeu
flipped_cards = []
matched_pairs = 0

# Boucle principale du jeu
running = True
while running:
Ā  Ā  for event in pygame.event.get():
Ā  Ā  Ā  Ā  if event.type == pygame.QUIT:
Ā  Ā  Ā  Ā  Ā  Ā  running = False

Ā  Ā  Ā  Ā  if event.type == pygame.MOUSEBUTTONDOWN and matched_pairs < NUM_ROWS * NUM_COLS // 2:
Ā  Ā  Ā  Ā  Ā  Ā  mouse_pos = pygame.mouse.get_pos()
Ā  Ā  Ā  Ā  Ā  Ā  for card in cards:
                if not card[« matched »] and card[« rect »].collidepoint(mouse_pos):
                    if not card[« flipped »]:
                        card[« flipped »] = True
Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  flipped_cards.append(card)
Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  if len(flipped_cards) == 2:
                            if flipped_cards[0][« value »] == flipped_cards[1][« value »]:
                                flipped_cards[0][« matched »] = True
                                flipped_cards[1][« matched »] = True
Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  matched_pairs += 1
Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  else:
                                flipped_cards[0][« flipped »] = False
                                flipped_cards[1][« flipped »] = False
Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  Ā  flipped_cards = []

Ā  Ā  # Effacer l’Ć©cran
Ā  Ā  window.fill(BLACK)

Ā  Ā  # Dessiner les cartes
Ā  Ā  for card in cards:
        if card[« flipped »]:
            window.blit(images[int(card[« value »])], card[« rect »])
Ā  Ā  Ā  Ā  else:
            pygame.draw.rect(window, WHITE, card[« rect »])

Ā  Ā  # Actualiser la fenĆŖtre
Ā  Ā  pygame.display.update()

# Fermeture de Pygame
pygame.quit()

Ā 

Retour en haut