Compare commits

...

No commits in common. "replit/main" and "main" have entirely different histories.

14 changed files with 234 additions and 260 deletions

4
.gitignore vendored
View File

@ -1,3 +1,4 @@
# ---> Python
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
@ -157,4 +158,5 @@ cython_debug/
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
#.idea/

14
.replit
View File

@ -1,14 +0,0 @@
entrypoint = "main.py"
modules = ["python-3.10"]
audio = true
hidden = [".pythonlibs"]
[nix]
channel = "stable-23_05"
[[ports]]
localPort = 5900
externalPort = 80

2
README.md Normal file
View File

@ -0,0 +1,2 @@
# python2dspiel

BIN
bruitstirs.wav Normal file

Binary file not shown.

BIN
gameover.mp3 Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

BIN
invasion musique.mp3 Normal file

Binary file not shown.

337
main.py
View File

@ -1,117 +1,238 @@
import pygame
import pygame
from pygame.locals import *
from random import randint
LARGEUR = 900
HAUTEUR = 700
fenetre = pygame.display.set_mode((LARGEUR, HAUTEUR))
fond = pygame.sprite.Sprite()
fond.image = pygame.image.load("terre.jpg").convert()
fond.rect = fond.image.get_rect()
fond.rect.x = 55
fond.rect.y = 0
def creer_ananas(pos_x, pos_y):
ananas = pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(ananas)
ananas.image = pygame.image.load("ananas.png").convert_alpha()
ananas.image = pygame.transform.scale(ananas.image,[200, 100])
ananas.rect = ananas.image.get_rect()
ananas.rect.x = pos_x
ananas.rect.y = pos_y
return ananas
pygame.init()
clock = pygame.time.Clock()
running = True
avion = pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(avion)
avion.image = pygame.image.load("avion.png").convert_alpha()
avion.image = pygame.transform.scale(avion.image,[120, 120])
avion.rect = avion.image.get_rect()
avion.rect.x = 200
avion.rect.y = 400
liste_des_sprites = pygame.sprite.LayeredUpdates()
liste_des_sprites.add(fond)
liste_sprites_ananas = pygame.sprite.LayeredUpdates()
liste_des_sprites.add(avion)
liste_d_ananas = []
police = pygame.font.Font(None, 25)
texte = pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(texte)
texte.image = police.render("ALERTE! La planète terre est attaquée par une flotte davions spatiaux!", 1, (10, 10, 10),(255, 90, 20))
texte.rect = texte.image.get_rect()
texte.rect.centerx = 360
texte.rect.centery = 30
liste_des_sprites.add(texte)
from random import randint
from pygame.mixer import music #musique
pygame.mixer.init() #initialiser la musique
police = pygame.font.Font(None, 20)
texte2 = pygame.sprite.Sprite()
texte2.image = police.render("Vous vous trouver dans lengin SU-PER12. Votre mission est déliminer le plus dennemis possible!", 1, (10, 10, 10),(255, 90, 20))
texte2.rect = texte2.image.get_rect()
texte2.rect.centerx = 360
texte2.rect.centery = 60
liste_des_sprites.add(texte2)
LARGEUR = 610 #largeur de la fenêtre
HAUTEUR = 600 #hauteur de la fenêtre
fenetre = pygame.display.set_mode((LARGEUR, HAUTEUR)) #créer la fenêtre
fond = pygame.sprite.Sprite() #créer un sprite pour le fond de la terre
fond.image = pygame.image.load("terre.jpg").convert() #charger l'image de la terre
fond.rect = fond.image.get_rect() #obtenir les coordonnées de l'image de la terre
fond.rect.x = 0 #position x de l'image "terre.jpg"
fond.rect.y = 0 #position y de l'image "terre.jpg"
police = pygame.font.Font(None, 20)
texte3 = pygame.sprite.Sprite()
texte3.image = police.render("Pour ce faire, appuyez sur « espace » pour tirer et bougez la souris pour manoeuvrer votre SU-PER12!", 1, (10, 10, 10),(255, 90, 20))
texte3.rect = texte3.image.get_rect()
texte3.rect.centerx = 360
texte3.rect.centery = 80
liste_des_sprites.add(texte3)
def creer_ananas(pos_x, pos_y): #créer un ananas (adversaire)
ananas = pygame.sprite.Sprite() #créer un sprite
pygame.sprite.Sprite.__init__(ananas) #initialiser le sprite
ananas.image = pygame.image.load("ananas.png").convert_alpha() #charger l'image de l'ananas
ananas.image = pygame.transform.scale(ananas.image,[200, 100]) #redimensionner l'image de l'ananas
ananas.rect = ananas.image.get_rect() #obtenir les coordonnées de l'image de l'ananas
ananas.rect.x = pos_x # position x de l'image de l'ananas
ananas.rect.y = pos_y # position y de l'image de l'ananas
return ananas #retourner l'ananas
police = pygame.font.Font(None, 20)
texte4 = pygame.sprite.Sprite()
texte4.image = police.render("Bonne chance!", 1, (10, 10, 10),(255, 90, 20))
texte4.rect = texte4.image.get_rect()
texte4.rect.centerx = 360
texte4.rect.centery = 100
liste_des_sprites.add(texte4)
def tirer_missiles(pos_x, pos_y): #créer un missile
missiles = pygame.sprite.Sprite() #créer un sprite
pygame.sprite.Sprite.__init__(missiles) #initialiser le sprite
missiles.image = pygame.image.load("missiles.png").convert_alpha() #charger l'image du missile
missiles.image = pygame.transform.scale(missiles.image,[10, 100]) #redimensionner l'image du missile
missiles.rect = missiles.image.get_rect() #obtenir les coordonnées de l'image du missile
missiles.rect.x = pos_x # position x de l'image du missile
missiles.rect.y = pos_y # position y de l'image du missile
return missiles #retourner le missile
police = pygame.font.Font(None, 20)
texte5 = pygame.sprite.Sprite()
texte5.image = police.render("ALERTE, PLANETE TERRE EST SOUS ATTAQUE", 1, (10, 10, 10),(255, 90, 20))
texte5.rect = texte5.image.get_rect()
texte5.rect.centerx = 360
texte5.rect.centery = 1500
liste_des_sprites.add(texte5)
liste_sprites_ananas = pygame.sprite.LayeredUpdates() #créer une liste pour les ananas
liste_de_missiles = [] #créer une liste vide pour stocker les missiles
liste_sprites_missiles = pygame.sprite.Group() #créer un groupe pour stocker les missiles
gameover = False
score = 0
while running:
liste_des_sprites.draw(fenetre)
liste_sprites_ananas.draw(fenetre)
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.init() #initialiser pygame
clock = pygame.time.Clock() #créer un horloge pour contrôler la vitesse de rafraîchissement de la fenêtre
running = True #définir la variable running
avion = pygame.sprite.Sprite() #créer un sprite pour l'avion
pygame.sprite.Sprite.__init__(avion) #initialiser le sprite de l'avion
avion.image = pygame.image.load("avion.png").convert_alpha() #charger l'image de l'avion
avion.image = pygame.transform.scale(avion.image,[120, 120]) #redimensionner l'image de l'avion
avion.rect = avion.image.get_rect() #obtenir les coordonnées de l'image de l'avion
avion.rect.x = 200 #position x de l'image de l'avion
avion.rect.y = 450 #position y de l'image de l'avion
liste_des_sprites = pygame.sprite.LayeredUpdates() #créer un groupe pour stocker les sprites
liste_des_sprites.add(fond) #ajouter le fond à la liste des sprites
liste_des_sprites.add(avion) #ajouter l'avion à la liste des sprites
liste_d_ananas = [] #créer une liste vide pour stocker les ananas
gameover = False #définir la variable gameover
intro = int(input("Voulez-vous sauver la Terre ? 1 pour oui, 2 pour non: ")) #demander à l'utilisateur s'il veut sauver la Terre
sauver = (intro == 1)
if sauver == True: #si l'utilisateur veut sauver la Terre
print("ALERTE! La planète Terre est attaquée par une flotte davions spatiaux! Vous vous trouvez dans lengin SU-PER12. Votre mission est déliminer le plus dennemis possible! En éliminant les adversaires, vous gagnez 10 points. La planète sera sauvée, lorsque vous aurez atteind les 100 points! Pour ce faire, appuyez sur votre souris pour tirer et manoeuvrez-la en la pour bouger votre SU-PER12. Bonne chance!") #afficher un message
music = pygame.mixer.music.load("musique fond.mp3")
#charger la musique de fond correspondant à sauver == True
pygame.mixer.music.play(-1) #jouer la musique de fond en boucle
pygame.mixer.music.set_volume(0.3) # changer le volume de la musique de fond
else: #si l'utilisateur ne veut pas sauver la Terre
gameover == True #définir la variable gameover
print("Dommage, la fin du Monde est proche...")
avion.kill() # enlever l'avion de la liste des sprites (et donc de la fenetre)
liste_sprites_missiles.empty() #enlever tout les missiles du groupe
music = pygame.mixer.music.load("invasion musique.mp3") #charger la musique de fond correspondant à sauver == False
pygame.mixer.music.play(1) #jouer la musique de fond qu'une seule fois
police = pygame.font.Font(None, 30) #créer une police
texte= pygame.sprite.Sprite() #créer un sprite
texte.image = police.render("ALERTE, PLANETE TERRE EST SOUS ATTAQUE", 1, (10, 10, 10),(255, 90, 20)) #créer un texte pour annoncer l'invasion
texte.rect = texte.image.get_rect() #obtenir les coordonnées du texte
texte.rect.centerx = 310 #position x du texte
texte.rect.centery = 20 #position y du texte
liste_des_sprites.add(texte) #ajouter le texte à la liste des sprites
rapidite_ananas = 4 # mouvement de l'ananas (4 pixels par refraichissement de la fenêtre))
delay = 10 #définir le délai (10sec) des ananas pour que l'utilisateur puisse lire la consigne
missiles_sound = pygame.mixer.Sound("bruitstirs.wav") #créer un son pour les missiles
timer = 0 #initialiser le timer
score = 0 #initialiser le score
while running: #tant que running est vrai
if sauver == False: #si l'utilisateur choisit l'sauver == False
timer += 1 #incrément du timer à chaque phase d'exécution
if timer >= 30 * 60: #si le timer est plus grand ou égal à 30 sec * 60 cadres par sec
gameover = True #définir gameover comme True
music = pygame.mixer.music.load("gameover.mp3") #charger la musique du gameover
pygame.mixer.music.play(1)#jouer la musique du gameover qu'une seule fois
police = pygame.font.Font(None, 50) #créer une police pour le texte
texte = pygame.sprite.Sprite() #créer un texte pour le gameover
texte.image = police.render("GAMEOVER", 1, (10, 10, 10),(255, 90, 20)) #créer un texte pour le gameover
texte.rect = texte.image.get_rect() #obtenir les coordonnées du texte
texte.rect.centerx = 310 #position x du texte
texte.rect.centery = 200 #position y du texte
liste_des_sprites.add(texte) #ajouter le texte à la liste des sprites
texte = pygame.sprite.Sprite() #créer un second message
texte.image = police.render("INVASION ABOUTIE", 1, (10, 10, 10),(255, 90, 20)) #créer un texte pour informer le joueur de l'invasion
texte.rect = texte.image.get_rect() #obtenir les coordonnées de l'image
texte.rect.centerx = 310
texte.rect.centery = 240
liste_des_sprites.add(texte) #ajouter le texte
liste_des_sprites.draw(fenetre) #dessiner les sprites
liste_sprites_ananas.draw(fenetre) #dessiner les ananas
liste_sprites_missiles.draw(fenetre) #dessiner les missiles
for event in pygame.event.get(): #pour chaque événement
if event.type == pygame.QUIT: #si l'événement est quitter
running = False
if event.type == MOUSEMOTION:
if event.type == MOUSEMOTION: #si l'événement est la position de la souris
avion.rect.x = event.pos[0]
keys = pygame.key.get_pressed()
if keys[pygame.K_SPACE]:
liste_des_sprites.remove(texte)
if gameover == False:
nombre_aleatoire = randint(0, 100)
if nombre_aleatoire == 100:
position_x_aleatoire = randint(0, LARGEUR - 60)
nouvel_ananas = creer_ananas(position_x_aleatoire, -100)
liste_d_ananas.append(nouvel_ananas)
liste_sprites_ananas.add(nouvel_ananas)
if event.type == MOUSEBUTTONDOWN: #si l'événement est le clic de la souris
if gameover == False and sauver == True: #if gameover is not true
nouveau_missile = tirer_missiles(avion.rect.centerx, HAUTEUR/2) #créer un nouveau missile
pygame.mixer.Sound.play(missiles_sound) #jouer le son du tir
liste_de_missiles.append(nouveau_missile) #ajouter le nouveau missile à la liste
liste_sprites_missiles.add(nouveau_missile) #ajouter le nouveau missile au groupe
if gameover == False: #si le jeu n'est pas terminé
if score < 100: # only spawn ananas if score is less than 100
nombre_aleatoire = randint(0, 100) #obtenir un nombre aléatoire pour contrôler la fréquence des ananas
if nombre_aleatoire == 100: #si le nombre aléatoire est 100
position_x_aleatoire = randint(0, LARGEUR - 60) #obtenir une position x aléatoire pour l'ananas
nouvel_ananas = creer_ananas(position_x_aleatoire, -100) #créer une nouvelle ananas
liste_d_ananas.append(nouvel_ananas) #l'ajouter à la liste
liste_sprites_ananas.add(nouvel_ananas) #l'ajouter au groupe
nouvel_ananas.delay_timer = delay * 60 #définir le délai
for ananas in liste_d_ananas:
ananas.rect.y += 5
if ananas.rect.colliderect(avion):
print("COLLISION")
score += 1
liste_d_ananas.remove(ananas)
ananas.kill()
if ananas.rect.y > HAUTEUR:
gameover = True
police = pygame.font.Font(None, 36)
texte = pygame.sprite.Sprite()
pygame.sprite.Sprite.__init__(texte)
texte.image = police.render("Gameover. L'ennemi est entré dans notre atmosphère! Réessaye de tuer tout les ennemis! Score : "+ str(score), 1, (10, 10, 10),(255, 90, 20))
texte.rect = texte.image.get_rect()
texte.rect.centerx = 360
texte.rect.centery = 450
liste_des_sprites.add(texte)
pygame.display.flip()
fenetre.fill((0,0,0))
clock.tick(60)
pygame.quit()
if ananas.delay_timer > 0: #si le délai est supérieur à 0
ananas.delay_timer -= 1 #soustraire le délai d'une ananas
else:
ananas.rect.y += rapidite_ananas #ajouter la vitesse à la position y de l'ananas
if ananas.rect.colliderect(avion) and sauver == True: #si l'ananas touche l'avion ET si sauver == True
print("COLLISION, L'OBJET A ÉTÉ ÉLIMINÉ, MALHEUREUSEMENT, VOUS AUSSI.") #message pour informer la mort de l'utilisateur
avion.kill() #enlever l'avion de la liste des sprites (et donc de la fenetre))
music = pygame.mixer.music.load("gameover.mp3") #charger la musique du gameover
pygame.mixer.music.play(1) #jouer la musique du gameover qu'une seule fois
police = pygame.font.Font(None, 50) #créer une police pour le texte
texte = pygame.sprite.Sprite() #créer un texte
texte.image = police.render("GAMEOVER", 1, (10, 10, 10),(255, 90, 20))
texte.rect = texte.image.get_rect() #obtenir les coordonnées du texte
texte.rect.centerx = 310 #position x du texte
texte.rect.centery = 200 #position y du texte
liste_des_sprites.add(texte) #ajouter le texte à la liste des sprites
liste_d_ananas.remove(ananas) #retirer l'ananas de la liste
ananas.kill() #supprimer l'ananas (de la fenetre)
gameover = True #définir la variable gameover comme vrai
if ananas.rect.y > HAUTEUR: #si l'ananas dépasse l'hauteur de la fenêtre
if sauver == False: #si l'utilisateur a choisi de ne pas sauver la Terre
gameover = False #définir la variable gameover comme faux
else:
gameover = True #définir la variable gameover comme vrai
police = pygame.font.Font(None, 36)
texte1 = pygame.sprite.Sprite() #créer un texte du gameover
pygame.sprite.Sprite.__init__(texte1) #initialiser le sprite
texte1.image = police.render("GAMEOVER", 1, (10,10,10),(255, 90, 20)) #créer un texte du gameover
texte1.rect = texte1.image.get_rect() #obtenir les coordonnées du texte
texte1.rect.centerx = 310 #position x du texte
texte1.rect.centery = 200 #position y du texte
liste_des_sprites.add(texte1) #ajouter le texte1 à la liste des sprites
police = pygame.font.Font(None, 36) #créer une police pour le texte
texte22 = pygame.sprite.Sprite() #créer un texte pour informer de l'invasion des adversaires
pygame.sprite.Sprite.__init__(texte22) #initialiser le sprite
texte22.image = police.render("L'ennemi est entré dans notre atmosphère!", 1, (10,10,10),(255, 90, 20)) #créer un texte pour informer de l'invasion des adversaires
texte22.rect = texte22.image.get_rect() #obtenir les coordonnées du texte
texte22.rect.centerx = 310 #position x du texte
texte22.rect.centery = 250 #position y du texte
liste_des_sprites.add(texte22) #ajouter le texte22 à la liste des sprites
police = pygame.font.Font(None, 36) #créer une police pour le texte
texte33 = pygame.sprite.Sprite() #créer un texte motivant l'utilisateur d'une (nouvelle) mission
pygame.sprite.Sprite.__init__(texte33) #initialiser le sprite
texte33.image = police.render("Réessayez de tuer tout les ennemis!", 1, (10,10,10),(255, 90, 20)) #créer un texte motivant l'utilisateur d'une (nouvelle) mission
texte33.rect = texte33.image.get_rect() #obtenir les coordonnées du texte
texte33.rect.centerx = 310 #position x du texte
texte33.rect.centery = 300 #position y du texte
liste_des_sprites.add(texte33) #ajouter le texte33 à la liste des sprites
for missiles in liste_de_missiles: #pour chaque missile dans la liste des missiles
missiles.rect.y -= 10 #soustraire 10 à la position y du missile (10 pixels, le missile monte dans l'écran)
if missiles.rect.y <= 0: #si la position y du missile est inférieure ou égale à 0
liste_de_missiles.remove(missiles) #retirer le missile de la liste
missiles.kill() #supprimer le missile (de la fenetre)
else:
for ananas in liste_d_ananas: #pour chaque ananas dans la liste des ananas
if ananas.rect.colliderect(missiles): #si l'ananas touche le missile
liste_d_ananas.remove(ananas) #retirer l'ananas de la liste des ananas
ananas.kill() #supprimer l'ananas (de la fenetre)
liste_de_missiles.remove(missiles) #retirer le missile de la liste des missiles
missiles.kill() #supprimer le missile (de la fenetre)
score += 10 # augmenter le score de l'utilisateur de 10 points
print(f"Score:", score) # print le score
texte_score = police.render("Score: " + str(score), 1, (10, 10, 10), (255, 90, 20)) #actualiser le texte du score
texte_score_rect = texte_score.get_rect() #obtenir les coordonnées du texte
texte_score_rect.topleft = (10, 10) #position du texte
if score >= 100: #vérifier le jeu pour une victoire
gameover = True #définir la variable gameover comme vrai
music = pygame.mixer.music.load("victoire.mp3") #charger la musique de la victoire
pygame.mixer.music.play(1) #jouer la musique de la victoire qu'une seule fois
police = pygame.font.Font(None, 50) #créer une police pour le texte
texte = pygame.sprite.Sprite() #créer un texte pour informer de la victoire
texte.image = police.render("VICTOIRE!", 1, (10, 10, 10),(255, 90, 20)) #créer un texte pour informer de la victoire
texte.rect = texte.image.get_rect() #obtenir les coordonnées du texte
texte.rect.centerx = 310 #position x du texte
texte.rect.centery = 200 #position y du texte
liste_des_sprites.add(texte) #ajouter le texte à la liste des sprites
texte = pygame.sprite.Sprite() #créer un second texte pour informer de la victoire
texte.image = police.render("LA TERRE EST SAUVÉE!", 1, (10, 10, 10),(255, 90, 20)) #créer un second texte pour informer de la victoire
texte.rect = texte.image.get_rect() #obtenir les coordonnées du texte
texte.rect.centerx = 310 #position x du texte
texte.rect.centery = 235 #position y du texte
liste_des_sprites.add(texte) #ajouter le texte à la liste des sprites
pygame.display.flip() #mettre à jour la fenêtre
fenetre.fill((0,0,0)) #remplir la fenêtre avec la couleur noire (derrière la terre)
clock.tick(50) #mettre le nombre de cadres par sec
pygame.quit() #quitter pygame

BIN
missiles.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

BIN
musique fond.mp3 Normal file

Binary file not shown.

99
poetry.lock generated
View File

@ -1,99 +0,0 @@
# This file is automatically @generated by Poetry 1.5.4 and should not be changed by hand.
[[package]]
name = "dearpygui"
version = "1.10.1"
description = "DearPyGui: A simple Python GUI Toolkit"
optional = false
python-versions = ">=3.7"
files = [
{file = "dearpygui-1.10.1-cp310-cp310-macosx_10_6_x86_64.whl", hash = "sha256:ef1f1a8dbbd2dac9ea4fbf9d37e7812741e9a33de03ce385e398258750966a85"},
{file = "dearpygui-1.10.1-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:7dc32b229d89b10ec4f647414738783afc2d6aa09c28c9f7384b07023b6ee261"},
{file = "dearpygui-1.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:8047f4ac06fb774c1335a98d3dbb47337b07e17629a85789740298a61e6ae999"},
{file = "dearpygui-1.10.1-cp311-cp311-macosx_10_6_x86_64.whl", hash = "sha256:e87016bdd388d0e33080cd2033047f6c58df7808e1c3e14a1b0d736b2184e1ce"},
{file = "dearpygui-1.10.1-cp311-cp311-manylinux1_x86_64.whl", hash = "sha256:ac4e1cb01cd53490df20365645fbd0296bac093b8a415c805c18cad0aa85cac6"},
{file = "dearpygui-1.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:1711a5cc991eaa6bc8a7a3cadb3845236c16b6753dc46b2fd1f4285db57d998e"},
{file = "dearpygui-1.10.1-cp312-cp312-macosx_10_6_x86_64.whl", hash = "sha256:e506507ee5344bb8d059d333c4dd77cd61bb4850f66fc4b5508ffa4f456f5a98"},
{file = "dearpygui-1.10.1-cp312-cp312-manylinux1_x86_64.whl", hash = "sha256:ed0d58e057636c4b79aee14d09b78042b122f42a6bef08d9901239de3361449d"},
{file = "dearpygui-1.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:5350d2a03da789684fcd384d7ee9e0ea029ecf134bef30d134c439d35c9d60b4"},
{file = "dearpygui-1.10.1-cp37-cp37m-macosx_10_6_x86_64.whl", hash = "sha256:d36b16afd0dd22674a59195e2ba37b787ea18bfb4ca96c460d6b7795f2c56980"},
{file = "dearpygui-1.10.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:2d94b23bed91e121ad4556b811fe164598c5b4dc94a19e3195bb70a4ff632759"},
{file = "dearpygui-1.10.1-cp37-cp37m-win_amd64.whl", hash = "sha256:d1b877a147971e062d3c006027e880fd2b88dad9d198620f12b8407dddb1f795"},
{file = "dearpygui-1.10.1-cp38-cp38-macosx_10_6_x86_64.whl", hash = "sha256:0e30634f1f8c13994ec59c58048e97103e672f792145a57aab4a7c39c6445e5e"},
{file = "dearpygui-1.10.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:d2cb73d22ec6c186c039c60c22efa5fc94f0562793bf20996d9eeae5ee601d55"},
{file = "dearpygui-1.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:2a8a1305ad6bfbc6f46968067b7f02d8404f2df21a13627e8c93cdabbb30f37b"},
{file = "dearpygui-1.10.1-cp39-cp39-macosx_10_6_x86_64.whl", hash = "sha256:a2e722e5b1fb8ab8d25e3ed82a790778849c1c66a522a327a73e25e218f98873"},
{file = "dearpygui-1.10.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:358a221d5f53b584e7bbc76e2ad7ca012991debdd74ea3a6cfc8e2ed0ea51c92"},
{file = "dearpygui-1.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:5ccb75b5377e5d4fcd6358ac2164418301b2747a78fee55422e3995d167d364a"},
]
[[package]]
name = "pygame"
version = "2.5.2"
description = "Python Game Development"
optional = false
python-versions = ">=3.6"
files = [
{file = "pygame-2.5.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a0769eb628c818761755eb0a0ca8216b95270ea8cbcbc82227e39ac9644643da"},
{file = "pygame-2.5.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ed9a3d98adafa0805ccbaaff5d2996a2b5795381285d8437a4a5d248dbd12b4a"},
{file = "pygame-2.5.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30d1618672a55e8c6669281ba264464b3ab563158e40d89e8c8b3faa0febebd"},
{file = "pygame-2.5.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:39690e9be9baf58b7359d1f3b2336e1fd6f92fedbbce42987be5df27f8d30718"},
{file = "pygame-2.5.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03879ec299c9f4ba23901b2649a96b2143f0a5d787f0b6c39469989e2320caf1"},
{file = "pygame-2.5.2-cp310-cp310-win32.whl", hash = "sha256:74e1d6284100e294f445832e6f6343be4fe4748decc4f8a51131ae197dae8584"},
{file = "pygame-2.5.2-cp310-cp310-win_amd64.whl", hash = "sha256:485239c7d32265fd35b76ae8f64f34b0637ae11e69d76de15710c4b9edcc7c8d"},
{file = "pygame-2.5.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:34646ca20e163dc6f6cf8170f1e12a2e41726780112594ac061fa448cf7ccd75"},
{file = "pygame-2.5.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3b8a6e351665ed26ea791f0e1fd649d3f483e8681892caef9d471f488f9ea5ee"},
{file = "pygame-2.5.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc346965847aef00013fa2364f41a64f068cd096dcc7778fc306ca3735f0eedf"},
{file = "pygame-2.5.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:35632035fd81261f2d797fa810ea8c46111bd78ceb6089d52b61ed7dc3c5d05f"},
{file = "pygame-2.5.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e24d05184e4195fe5ebcdce8b18ecb086f00182b9ae460a86682d312ce8d31f"},
{file = "pygame-2.5.2-cp311-cp311-win32.whl", hash = "sha256:f02c1c7505af18d426d355ac9872bd5c916b27f7b0fe224749930662bea47a50"},
{file = "pygame-2.5.2-cp311-cp311-win_amd64.whl", hash = "sha256:6d58c8cf937815d3b7cdc0fa9590c5129cb2c9658b72d00e8a4568dea2ff1d42"},
{file = "pygame-2.5.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1a2a43802bb5e89ce2b3b775744e78db4f9a201bf8d059b946c61722840ceea8"},
{file = "pygame-2.5.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1c289f2613c44fe70a1e40769de4a49c5ab5a29b9376f1692bb1a15c9c1c9bfa"},
{file = "pygame-2.5.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:074aa6c6e110c925f7f27f00c7733c6303407edc61d738882985091d1eb2ef17"},
{file = "pygame-2.5.2-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fe0228501ec616779a0b9c4299e837877783e18df294dd690b9ab0eed3d8aaab"},
{file = "pygame-2.5.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31648d38ecdc2335ffc0e38fb18a84b3339730521505dac68514f83a1092e3f4"},
{file = "pygame-2.5.2-cp312-cp312-win32.whl", hash = "sha256:224c308856334bc792f696e9278e50d099a87c116f7fc314cd6aa3ff99d21592"},
{file = "pygame-2.5.2-cp312-cp312-win_amd64.whl", hash = "sha256:dd2d2650faf54f9a0f5bd0db8409f79609319725f8f08af6507a0609deadcad4"},
{file = "pygame-2.5.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:9b30bc1220c457169571aac998e54b013aaeb732d2fd8744966cb1cfab1f61d1"},
{file = "pygame-2.5.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78fcd7643358b886a44127ff7dec9041c056c212b3a98977674f83f99e9b12d3"},
{file = "pygame-2.5.2-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:35cf093a51cb294ede56c29d4acf41538c00f297fcf78a9b186fb7d23c0577b6"},
{file = "pygame-2.5.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fe323acbf53a0195c8c98b1b941eba7ac24e3e2b28ae48e8cda566f15fc4945"},
{file = "pygame-2.5.2-cp36-cp36m-win32.whl", hash = "sha256:5697528266b4716d9cdd44a5a1d210f4d86ef801d0f64ca5da5d0816704009d9"},
{file = "pygame-2.5.2-cp36-cp36m-win_amd64.whl", hash = "sha256:edda1f7cff4806a4fa39e0e8ccd75f38d1d340fa5fc52d8582ade87aca247d92"},
{file = "pygame-2.5.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:9bd738fd4ecc224769d0b4a719f96900a86578e26e0105193658a32966df2aae"},
{file = "pygame-2.5.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30a8d7cf12363b4140bf2f93b5eec4028376ca1d0fe4b550588f836279485308"},
{file = "pygame-2.5.2-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bc12e4dea3e88ea8a553de6d56a37b704dbe2aed95105889f6afeb4b96e62097"},
{file = "pygame-2.5.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2b34c73cb328024f8db3cb6487a37e54000148988275d8d6e5adf99d9323c937"},
{file = "pygame-2.5.2-cp37-cp37m-win32.whl", hash = "sha256:7d0a2794649defa57ef50b096a99f7113d3d0c2e32d1426cafa7d618eadce4c7"},
{file = "pygame-2.5.2-cp37-cp37m-win_amd64.whl", hash = "sha256:41f8779f52e0f6e6e6ccb8f0b5536e432bf386ee29c721a1c22cada7767b0cef"},
{file = "pygame-2.5.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:677e37bc0ea7afd89dde5a88ced4458aa8656159c70a576eea68b5622ee1997b"},
{file = "pygame-2.5.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:47a8415d2bd60e6909823b5643a1d4ef5cc29417d817f2a214b255f6fa3a1e4c"},
{file = "pygame-2.5.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4ff21201df6278b8ca2e948fb148ffe88f5481fd03760f381dd61e45954c7dff"},
{file = "pygame-2.5.2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d29a84b2e02814b9ba925357fd2e1df78efe5e1aa64dc3051eaed95d2b96eafd"},
{file = "pygame-2.5.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d78485c4d21133d6b2fbb504cd544ca655e50b6eb551d2995b3aa6035928adda"},
{file = "pygame-2.5.2-cp38-cp38-win32.whl", hash = "sha256:d851247239548aa357c4a6840fb67adc2d570ce7cb56988d036a723d26b48bff"},
{file = "pygame-2.5.2-cp38-cp38-win_amd64.whl", hash = "sha256:88d1cdacc2d3471eceab98bf0c93c14d3a8461f93e58e3d926f20d4de3a75554"},
{file = "pygame-2.5.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4f1559e7efe4efb9dc19d2d811d702f325d9605f9f6f9ececa39ee6890c798f5"},
{file = "pygame-2.5.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cf2191b756ceb0e8458a761d0c665b0c70b538570449e0d39b75a5ba94ac5cf0"},
{file = "pygame-2.5.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6cf2257447ce7f2d6de37e5fb019d2bbe32ed05a5721ace8bc78c2d9beaf3aee"},
{file = "pygame-2.5.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d75cbbfaba2b81434d62631d0b08b85fab16cf4a36e40b80298d3868927e1299"},
{file = "pygame-2.5.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:daca456d5b9f52e088e06a127dec182b3638a775684fb2260f25d664351cf1ae"},
{file = "pygame-2.5.2-cp39-cp39-win32.whl", hash = "sha256:3b3e619e33d11c297d7a57a82db40681f9c2c3ae1d5bf06003520b4fe30c435d"},
{file = "pygame-2.5.2-cp39-cp39-win_amd64.whl", hash = "sha256:1822d534bb7fe756804647b6da2c9ea5d7a62d8796b2e15d172d3be085de28c6"},
{file = "pygame-2.5.2-pp36-pypy36_pp73-win32.whl", hash = "sha256:e708fc8f709a0fe1d1876489345f2e443d47f3976d33455e2e1e937f972f8677"},
{file = "pygame-2.5.2-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c13edebc43c240fb0532969e914f0ccefff5ae7e50b0b788d08ad2c15ef793e4"},
{file = "pygame-2.5.2-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:263b4a7cbfc9fe2055abc21b0251cc17dea6dff750f0e1c598919ff350cdbffe"},
{file = "pygame-2.5.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e58e2b0c791041e4bccafa5bd7650623ba1592b8fe62ae0a276b7d0ecb314b6c"},
{file = "pygame-2.5.2-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a0bd67426c02ffe6c9827fc4bcbda9442fbc451d29b17c83a3c088c56fef2c90"},
{file = "pygame-2.5.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9dcff6cbba1584cf7732ce1dbdd044406cd4f6e296d13bcb7fba963fb4aeefc9"},
{file = "pygame-2.5.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ce4b6c0bfe44d00bb0998a6517bd0cf9455f642f30f91bc671ad41c05bf6f6ae"},
{file = "pygame-2.5.2-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:68c4e8e60b725ffc7a6c6ecd9bb5fcc5ed2d6e0e2a2c4a29a8454856ef16ad63"},
{file = "pygame-2.5.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f3849f97372a3381c66955f99a0d58485ccd513c3d00c030b869094ce6997a6"},
{file = "pygame-2.5.2.tar.gz", hash = "sha256:c1b89eb5d539e7ac5cf75513125fb5f2f0a2d918b1fd6e981f23bf0ac1b1c24a"},
]
[metadata]
lock-version = "2.0"
python-versions = ">=3.10.0"
content-hash = "5e87325b3835bfcefdcd3a01afb512f9063d24ed31ebd7620dcf328c01c74d86"

View File

@ -1,24 +0,0 @@
[tool.poetry]
name = "python-template"
version = "0.1.0"
description = ""
authors = ["Your Name <you@example.com>"]
[tool.poetry.dependencies]
python = ">=3.10.0"
pygame = "^2.1.2"
dearpygui = "^1.6.2"
[tool.pyright]
# https://github.com/microsoft/pyright/blob/main/docs/configuration.md
useLibraryCodeForTypes = true
exclude = [".cache"]
[tool.ruff]
# https://beta.ruff.rs/docs/configuration/
select = ['E', 'W', 'F', 'I', 'B', 'C4', 'ARG', 'SIM']
ignore = ['W291', 'W292', 'W293']
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"

View File

@ -1,14 +0,0 @@
{ pkgs }: {
deps = [
pkgs.portmidi
pkgs.pkg-config
pkgs.libpng
pkgs.libjpeg
pkgs.freetype
pkgs.fontconfig
pkgs.SDL2_ttf
pkgs.SDL2_mixer
pkgs.SDL2_image
pkgs.SDL2
];
}

BIN
victoire.mp3 Normal file

Binary file not shown.