Bonjour,
comme le titre l'indique j'ai un problème avec la sauvegarde du high socre de mon jeu qui ressemble à un flappy bird.
J'aimerais sauvegarder mon high score meme quand je quitte le jeu mais je j'y arrive pas car il faut le définit et quand je lui met la valeur 0, a chaque fois que je lance le programme il va revenir a 0.
Voici mon code actuellement et merci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
import pygame
import time
from random import *
 
blue = (113,177,227)
white = (255,255,255)
green = (124,252,0)
red = (255,0,0)
black = (0,0,0)
 
pygame.init()
 
windowW = 700
windowH = 540
ballonW = 50
ballonH = 66
nuageW = 180
nuageH = 490
espace = ballonH*3.5
nuage_vitesse = 0.8
 
 
window = pygame.display.set_mode((windowW,windowH))
pygame.display.set_caption("Ballon Volant")
horloge =  pygame.time.Clock()
 
img_ballon = pygame.image.load('avion.png')
img_nuage01 = pygame.image.load('bin_haut.png')
img_nuage02 = pygame.image.load('bin_bas.png')
 
def main():
 
    x_ballon = 50
    y_ballon = 200
 
    y_mouvement=0
 
    espace = ballonH*3
    nuage_vitesse = 10
 
    x_nuage = 1000
    y_nuage = randint(-650,-100)
 
    score_actuel = 0
    high_score_file = open("high_score.txt", "w")
    new_high_score = high_score_file
 
    game_over = False
 
    while not game_over:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                game_over = True
 
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_UP:
                    y_mouvement = -5
 
            if event.type == pygame.KEYUP:
                y_mouvement = 5
 
        y_ballon += y_mouvement
 
        window.fill(green)
        ballon(x_ballon,y_ballon,img_ballon)
 
        nuages(x_nuage, y_nuage, espace)
        score(score_actuel)
        x_nuage -= nuage_vitesse
 
        if y_ballon>windowH-10 or y_ballon<-0:
            gameOver()
 
        if x_ballon + ballonW > x_nuage + 40:
            if y_ballon<y_nuage + nuageH - 50 :
                if x_ballon-ballonW < x_nuage + nuageW - 20:
                    gameOver()
 
        if x_ballon + ballonW > x_nuage + 40:
            if y_ballon + ballonH > y_nuage + nuageH + espace + 50:
                if x_ballon-ballonW < x_nuage + nuageW - 20:
                    gameOver()
 
        if x_nuage <(-1*nuageW):
            x_nuage = windowW
            y_nuage = randint(-300,20)
 
        if x_nuage + nuageW < x_ballon and x_nuage + nuageW + nuage_vitesse >= x_ballon :
            score_actuel += 1
        if new_high_score >= 0:
            police = pygame.font.Font('BradBunR.ttf', 20)
            texte = police.render("High Score : " + str(new_high_score), True, black)
            window.blit(texte, [10,20])
 
 
        pygame.display.update()
        horloge.tick(60)
 
def gameOver():
    displayGameOver()
    displaySmallText()
    pygame.display.update()
    time.sleep(2)
    while rejoueOuQuitte() == None:
        horloge.tick()
    main()
 
def rejoueOuQuitte():
    for event in pygame.event.get([pygame.KEYDOWN, pygame.KEYUP, pygame.QUIT]):
        if event.type == pygame.QUIT :
            pygame.quit()
            quit()
        elif event.key ==pygame.KEYUP:
            continue
        return event.key
 
    return None
 
def ballon(x,y,img):
    window.blit(img, (x,y))
 
def displayGameOver() :
    police = pygame.font.Font('LemonMilk.otf', 100)
    texte = police.render("Boom!", True, red)
    window.blit(texte, [170,100])    
 
def displaySmallText() :
    police = pygame.font.Font('Roboto-Thin.ttf', 20)
    texte = police.render("Appuyer sur une touche pour continuer!", True, black)
    window.blit(texte, [170,350])
 
def nuages(x_nuage, y_nuage, espace):
    window.blit(img_nuage01,(x_nuage,y_nuage))
    window.blit(img_nuage02,(x_nuage,y_nuage + nuageH + espace))
 
def score(compte):
     police = pygame.font.Font('BradBunR.ttf', 20)
     texte = police.render("Score : " + str(compte), True, black)
     window.blit(texte, [10,0])
 
def new_high_score():
    new_high_score = 0
    if score_actuel > high_score:
            save_high_score(score_actuel)
 
def save_high_score(new_high_score):
    try:
        high_score_file = open("high_score.txt", "w")
        high_score_file.write(str(new_high_score))
        high_score_file.close()
    except IOError:
        print("Unable to save the high score.")
 
main()
pygame.quit()
quit()