A voir également:
- Script bls
- Script vidéo youtube - Guide
- Script bat - Guide
- Executeur de script - Télécharger - Édition & Programmation
- Ghost script - Télécharger - Polices de caractères
- Trojan script ✓ - Forum Virus
1 réponse
Bonjour,
Si tu dessines des lignes noires sur un écran noir, ça risque de ne pas se voir ;)
De plus, chaque fois qu'une croix ou un rond sera ajouté, il faudra que tu redessines tout, toute ta matrice comprise.
# Boucle principale du jeu winner = None running = True # pré-affichage screen.fill(WHITE) draw_grid() pygame.display.update() while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False elif event.type == pygame.MOUSEBUTTONDOWN: if player_turn: # Récupérer la position de la souris pos = pygame.mouse.get_pos() row = pos[1] // 166 col = pos[0] // 166 # Vérifier si la case est vide if not game_matrix[row][col]: # Marquer la case avec le symbole du joueur game_matrix[row][col] = player # Vérifier s'il y a un gagnant if check_win(): winner = player print(f"Le joueur {winner} a gagné !") running = False # Changer de joueur player = 'O' if player == 'X' else 'X' player_turn = False # Appel de la fonction pour vérifier si le jeu est terminé # check_game_over() ? screen.fill(WHITE) # Dessiner le symbole sur la grille draw_grid() for i, line in enumerate(game_matrix): for j, el in enumerate(line): x = 83 + 166 * j y = 83 + 166 * i if el == 'X': pygame.draw.line(screen, BLACK, (x - 50, y - 50), (x + 50, y + 50), 5) pygame.draw.line(screen, BLACK, (x + 50, y - 50), (x - 50, y + 50), 5) elif el == 'O': pygame.draw.circle(screen, BLACK, (x, y), 50, 5) # Mettre à jour l'affichage pygame.display.update() # Si le jeu est terminé, afficher le message de fin if winner: font = pygame.font.Font(None, 36) text = font.render(f"Le joueur {winner} a gagné !", True, BLACK) text_rect = text.get_rect(center=(screen.get_width() // 2, screen.get_height() // 2)) screen.blit(text, text_rect) pygame.display.flip() pygame.time.delay(3000) # Attendre 3 secondes avant de fermer la fenêtre running = False pygame.display.update()
Il est fortement déconseillé de faire plusieurs appels à display.update dans un code.
Ta fonction draw_XO devient caduque, sans doute faire une fonction matrix_draw, quant à check_game_over ?
Bonne continuation.