Quelqu'un POUR m'aider dans MON CODE pygame ?

EnormeEtronDu92
2023-01-13 15:24:09

#code python

while True:
pygame.time.wait(500)

mem = 0

for event in pygame.event.get():

if event == pygame.QUIT:

sys.exit

if event == pygame.KEYDOWN:

match event:
case pygame.K_UP:
if mem == 0:
head_direction = (0,1)
mem = 1
case pygame.K_DOWN:
if mem == 0:
head_direction = (0,-1)
mem = 1
case pygame.K_RIGHT:
if mem == 0:
head_direction = (1,0)
mem = 1
case pygame.K_LEFT:
if mem == 0:
head_direction = (-1,0)
mem = 1

if move() == 0:

break

print("score = ",len(snake)+1)

sys.exit

j'ai mis juste la partie ou j'ai un probleme le reste je pense pas qu'il y ai de soucis

voila j'ai un petit probleme et c'est a la partie pygame.QUIT qui fonctionne pas, quand je lance le programme et que je clique sur la croix pour quitter, rien ne se passe... :(

si quelqu'un s'y connait en pygame je voudrais bien savoir pourquoi :-)

EnormeEtronDu92
2023-01-13 15:27:31

uphttps://image.noelshack.com/fichiers/2018/29/6/1532128784-risitas33.png

EnormeEtronDu92
2023-01-13 15:28:47

bidehttps://image.noelshack.com/fichiers/2022/38/4/1663852709-golemabasourdi.png

EnormeEtronDu92
2023-01-13 15:30:55

personne ?https://image.noelshack.com/fichiers/2022/38/4/1663852709-golemabasourdi.png

MainLillia
2023-01-13 15:34:43

Il ne faut pas ajouter des parenthèses sur "sys.exit()" ?

EnormeEtronDu92
2023-01-13 15:35:49

Le 13 janvier 2023 à 15:34:43 :
Il ne faut pas ajouter des parenthèses sur "sys.exit()" ?

oui peut etre mais c'est pas ça le probleme

MainLillia
2023-01-13 15:36:36

Le 13 janvier 2023 à 15:35:49 :

Le 13 janvier 2023 à 15:34:43 :
Il ne faut pas ajouter des parenthèses sur "sys.exit()" ?

oui peut etre mais c'est pas ça le probleme

Eh bien je sais pas, bon couragehttps://image.noelshack.com/fichiers/2022/38/4/1663852709-golemabasourdi.png

EnormeEtronDu92
2023-01-13 15:37:48

Le 13 janvier 2023 à 15:36:36 :

Le 13 janvier 2023 à 15:35:49 :

Le 13 janvier 2023 à 15:34:43 :
Il ne faut pas ajouter des parenthèses sur "sys.exit()" ?

oui peut etre mais c'est pas ça le probleme

Eh bien je sais pas, bon couragehttps://image.noelshack.com/fichiers/2022/38/4/1663852709-golemabasourdi.png

merci quille je me demande pourquoi ça marche pas comme un if vivant cette partie :snif:

MainLillia
2023-01-13 15:37:53

Tu peux essayer exit() sinon

EnormeEtronDu92
2023-01-13 15:39:34

j'ai testé toujours pareil, faut que le if fonctionne deja et c'est pas le cas :(

Rapasteque
2023-01-13 15:39:43

Il semble que le problème vienne de la ligne "sys.exit" qui ne contient pas de parenthèses. En effet, sys.exit est une fonction qui arrête le programme, mais si vous ne l'appelez pas en mettant des parenthèses, elle ne sera pas exécutée.

Il faut donc remplacer la ligne "sys.exit" par "sys.exit()" pour que la fonction soit appelée et le programme s'arrête.

Aussi, dans la ligne "if event == pygame.QUIT:", il faut ajouter "break" pour quitter de la boucle while True.

Ainsi, le code devrait ressembler à ceci:

while True:
pygame.time.wait(500)

mem = 0

for event in pygame.event.get():

if event.type == pygame.QUIT:
pygame.quit()
sys.exit()

if event.type == pygame.KEYDOWN:
match event:
case pygame.K_UP:
if mem == 0:
head_direction = (0,1)
mem = 1
case pygame.K_DOWN:
if mem == 0:
head_direction = (0,-1)
mem = 1
case pygame.K_RIGHT:
if mem == 0:
head_direction = (1,0)
mem = 1
case pygame.K_LEFT:
if mem == 0:
head_direction = (-1,0)
mem = 1

if move() == 0:
break

print("score = ",len(snake)+1)

coinadaire
2023-01-13 15:40:47

Sa depend surement de ton ordi, sous mac os pygame quit buguait pour moi

EnormeEtronDu92
2023-01-13 15:45:33

Le 13 janvier 2023 à 15:39:43 :
Il semble que le problème vienne de la ligne "sys.exit" qui ne contient pas de parenthèses. En effet, sys.exit est une fonction qui arrête le programme, mais si vous ne l'appelez pas en mettant des parenthèses, elle ne sera pas exécutée.

Il faut donc remplacer la ligne "sys.exit" par "sys.exit()" pour que la fonction soit appelée et le programme s'arrête.

Aussi, dans la ligne "if event == pygame.QUIT:", il faut ajouter "break" pour quitter de la boucle while True.

Ainsi, le code devrait ressembler à ceci:

while True:
pygame.time.wait(500)

mem = 0

for event in pygame.event.get():

if event.type == pygame.QUIT:
pygame.quit()
sys.exit()

if event.type == pygame.KEYDOWN:
match event:
case pygame.K_UP:
if mem == 0:
head_direction = (0,1)
mem = 1
case pygame.K_DOWN:
if mem == 0:
head_direction = (0,-1)
mem = 1
case pygame.K_RIGHT:
if mem == 0:
head_direction = (1,0)
mem = 1
case pygame.K_LEFT:
if mem == 0:
head_direction = (-1,0)
mem = 1

if move() == 0:
break

print("score = ",len(snake)+1)

ça fonctionne merci :)

j'ai oublié que fallait mettre event.type au lieu de event, et j'ai mis le pygame.quit

comete-
2023-01-13 15:46:03

demande a chatgpthttps://image.noelshack.com/fichiers/2017/39/3/1506524542-ruth-perplexev2.png

Rapasteque
2023-01-13 15:46:25

Le 13 janvier 2023 à 15:45:33 :

Le 13 janvier 2023 à 15:39:43 :
Il semble que le problème vienne de la ligne "sys.exit" qui ne contient pas de parenthèses. En effet, sys.exit est une fonction qui arrête le programme, mais si vous ne l'appelez pas en mettant des parenthèses, elle ne sera pas exécutée.

Il faut donc remplacer la ligne "sys.exit" par "sys.exit()" pour que la fonction soit appelée et le programme s'arrête.

Aussi, dans la ligne "if event == pygame.QUIT:", il faut ajouter "break" pour quitter de la boucle while True.

Ainsi, le code devrait ressembler à ceci:

while True:
pygame.time.wait(500)

mem = 0

for event in pygame.event.get():

if event.type == pygame.QUIT:
pygame.quit()
sys.exit()

if event.type == pygame.KEYDOWN:
match event:
case pygame.K_UP:
if mem == 0:
head_direction = (0,1)
mem = 1
case pygame.K_DOWN:
if mem == 0:
head_direction = (0,-1)
mem = 1
case pygame.K_RIGHT:
if mem == 0:
head_direction = (1,0)
mem = 1
case pygame.K_LEFT:
if mem == 0:
head_direction = (-1,0)
mem = 1

if move() == 0:
break

print("score = ",len(snake)+1)

ça fonctionne merci :)

j'ai oublié que fallait mettre event.type au lieu de event, et j'ai mis le pygame.quit

Merci ChatGPT si ça a vraiment fonctionné.

EnormeEtronDu92
2023-01-13 15:50:13

serieux c'est une IA qui a fait le travail ?https://image.noelshack.com/fichiers/2017/30/4/1501186981-risimixbestreup.png
je dois vraiment faire du python niveau bébé pour que chatgpt puisse resoudre mes soucishttps://image.noelshack.com/fichiers/2017/30/4/1501186981-risimixbestreup.png

comete-
2023-01-13 15:53:41

Le 13 janvier 2023 à 15:50:13 :
serieux c'est une IA qui a fait le travail ?https://image.noelshack.com/fichiers/2017/30/4/1501186981-risimixbestreup.png
je dois vraiment faire du python niveau bébé pour que chatgpt puisse resoudre mes soucishttps://image.noelshack.com/fichiers/2017/30/4/1501186981-risimixbestreup.png

non chatgpt a un lvl plutot élevé il me semblehttps://image.noelshack.com/fichiers/2017/39/3/1506524542-ruth-perplexev2.png

__EnvieDeCASH
2023-01-13 15:55:31

Essie d'abord pygame.quit()

Puis fais un exit(0) pas besoin du module sys

Infos
Gestion du forum

contact@geevey.com

API disponible. Utilisez le paramètre "api" en GET, peu importe le contenu, sur une page du site.

Notes

    Partenaire: JVFlux
    Ce site n'est pas associé à Jeuxvideo.com ou Webedia. Nous utilisons seulement des archives publiques.
    Il est inutile de me spammer par e-mail pour supprimer un topic. Au contraire, en conséquence, je mettrais votre topic dans le bloc ci-dessous.
Non-assumage
    Personne n'a pas assumé de topic pour le moment.