A voir également:
- Jeu de cartes avec Pygame: comment afficher les cartes
- 94 jeu - Télécharger - Puzzle & Réflexion
- Whatsapp avec 2 cartes sim - Guide
- 94 degrés jeu - Télécharger - Divers Jeux
- Jeu zuma - Télécharger - Jeux vidéo
- Jeux de moto: jeu de course 3d - Télécharger - Course
2 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
peux-tu partager ton code en utilisant les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code ?
peux-tu partager ton code en utilisant les balises de code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code ?
OK mais tu n'as pas mis les balises de code comme expliqué dans le lien donne par yg_be ...
import pygame from random import shuffle from test import init_pioche_fichier from test import pioche_liste pygame.init() pygame.display.set_caption("Alliance des réussites") screen = pygame.display.set_mode((1095, 720)) background = pygame.image.load('assets1/bg.jpg') background = pygame.transform.scale(background,(2000,720)) clock = pygame.time.Clock() class Carte(pygame.sprite.Sprite): def __init__(self, value, color, pos_x, pos_y) -> None: super().__init__() self.color = color self.value = value self.image = pygame.image.load(f"assets1/cartes/carte-{value}-{color}.png") self.image = pygame.transform.scale(self.image,(72,96)) self.rect = self.image.get_rect() self.rect.x = 15 self.rect.y = 15 self.pos_x = pos_x self.pos_y= pos_y self.velocity = 3 self.clicked = False self.Isvisible = True def draw_card(self,screen): if(self.rect.x < self.pos_x): self.rect.x += self.velocity if(self.rect.y < self.pos_y): self.rect.y += self.velocity screen.blit(self.image, (self.rect.x,self.rect.y)) def set_visible(self, bVisible): if bVisible == False: self.image = pygame.image.load("assets1/cartes/carte-dos-dos.png") self.image = pygame.transform.scale(self.image,(72,96)) def compare(self, other): info1 = self.value, self.color info2 = other.value, other.color a, b = False, False if info1[0] == info2[0]: a = True if info1[1] == info2[1]: b = True return(a or b) #soit même valeur soit même couleur def init_liste_Card(self): liste = [] i = 0 while(i < len(game.card_infos)): carte = Carte(game.card_infos[i]['valeur'],game.card_infos[i]['couleur'], 15, 15) liste.append(carte) i += 1 return liste def battre(self, liste): shuffle(liste) class Game: def __init__(self, mode) -> None: self.mode = mode self.card_infos = init_pioche_fichier(f"jeu-{mode}.txt") #une fonction qui lit dans un fichier contenant les valeurs des cartes pioche = Carte('dos','dos',15,15) game = Game(32) def init_liste_Card_Pos(pos_X = 15, pos_Y = 200): #au départ la 1ere carte est en bas de la pioche liste_card = [] i, j = 0, 0 while(i < len(game.card_infos)): if (pos_X + 72) < (screen.get_width()-87): #87 = bordure fin + une carte pos_X = 15+90*j carte = Carte(game.card_infos[i]['valeur'],game.card_infos[i]['couleur'],pos_X, pos_Y) liste_card.append(carte) j += 1 else: pos_X = 15 pos_Y += 115 j = 0 i -= 1 i +=1 return liste_card list_pioche_Pos = init_liste_Card_Pos() #liste cartes deja en positions differentes carte = Carte('dos','dos', 15, 15) list_pioche_Stable = carte.init_liste_Card() jeu = [] #jeu vide qu'on va contenir au fur et à mesure les cartes piochées def affiche(): screen.blit(background, (0, 0)) pioche.draw_card(screen) index_card_afficher = 0 #!!!C'est ici que je dois implémenter l'affichage des cartes une-à-une!!!!# if pioche.clicked == True and len(list_pioche_Stable) != 0: pioche_liste(jeu, list_pioche_Stable) #pioche dans la liste_pioche la met dans jeu et efface dans liste_pioche index_card_afficher = len(jeu) - 1 #toujours vouloir afficher la dernière carte prise jeu[index_card_afficher].draw_card(screen) #carte pioché affichée #!!!Et c'est ici qu'il y a un problème!!!# pygame.display.flip() # _______________________BUTTON__________________________# for event in pygame.event.get(): if event.type == pygame.QUIT: running = False pygame.quit() if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: running = False pygame.quit() if event.type == pygame.MOUSEBUTTONDOWN: if pioche.rect.collidepoint(event.pos): if pygame.mouse.get_pressed()[0] == 1: pioche.clicked = True elif pygame.mouse.get_pressed()[0] == 0: pioche.clicked = False def main(): running = True while running: affiche() clock.tick(30) if __name__ == '__main__': main()
J'ai un peu modifié mais ça ne marche pas, mais c'est le code intégral