Process ended with exit code 0.

Bonjour, je suis lycéen en classe de première et j’ai pour projet noté de reproduire un jeu, j’ai donc choisi Snake, cependant, chaque fois que j’atteins un certains endroit proche de la bordure cela s’arrête avec le message ‘Process ended with exit code 0.’, je ne comprend pas pourquoi sachant que les bordure sont définis sur 0<Zone jouable<1000 pour x et 0<Zone Jouable<750 pour y, si qq pourrait m’aider svp et m’expliquer comment ne plus croiser cette erreur

import pygame


pygame.init()

def affiche(S):
    # affiche tous les pixels du serpent
    # a partir de leurs coordonnees dans S
    for coord in S:
      x,y = coord
      pygame.draw.rect(dis, blue, [x, y, 50, 50])
    pygame.display.flip()
 
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)
green = (138,169,14)
blue = (10,74,130)
 
dis = pygame.display.set_mode((1001, 836))
 
game_over = False
 
x1 = 300
y1 = 300
 
x1_change = 0       
y1_change = 0
 
clock = pygame.time.Clock()

serpent = [[400,200],[450,200],[500,200] ]
serpent2 = [(450,250)]
      
while not game_over:
    fond = pygame.image.load('font_overlay.png')
    fond = fond.convert()
    dis.blit(fond, (0,0))
    affiche(serpent)
    #pygame.display.update()
    
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            game_over = True
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                x1_change = -50
                y1_change = 0
            elif event.key == pygame.K_RIGHT:
                x1_change = 50
                y1_change = 0
            elif event.key == pygame.K_UP:
                y1_change = -50
                x1_change = 0
            elif event.key == pygame.K_DOWN:
                y1_change = 50
                x1_change = 0
            
            
            
            serpent.pop()
            tete = [serpent[0][0]+x1_change,serpent[0][1]+y1_change]
            serpent.insert(0,tete)
            
    x1 += x1_change
    y1 += y1_change
    
    # collisions
    # bordures
    if serpent[0][0]+x1_change < 0 or serpent[0][0]+x1_change > 1000 :
        pygame.time.wait(1000)
        game_over = True
    if serpent[0][0]+y1_change < 0 or serpent[0][0]+y1_change > 750 :
        pygame.time.wait(1000)
        game_over = True
    # self_eating

    
    affiche(serpent)
    pygame.display.update()
 
    clock.tick(60)

pygame.quit()
quit()

exit code 0 ça signifie que ton programme s’est simplement terminé.

Les codes de retour c’est :

  • 0 : tout va bien.
  • 1 : tout va mal (classique).
  • autre : tout va mal (spécifique).

Donc, sans tester ton code, je pense que ta variable game_over passe à True, ce qui se passe dans ta détection de collision.

Ajoute peut-être un petit print("Collision !") en cas de collision dans tes deux if de détection de collision.