diff --git a/main.py b/main.py index 724fc84b006cef4f6f7a992e88f42bbfa72ee8c7..79e458615feb5536cd531eb1ce033d551ec657f3 100644 --- a/main.py +++ b/main.py @@ -1,12 +1,28 @@ import pygame import sys import random +import os # ★ 新增:用于文件读写 # 全局定义 SCREEN_X = 600 SCREEN_Y = 600 +# ★ 新增:读取与保存最高分的函数 +def load_highscore(): + if os.path.exists("highscore.txt"): + try: + with open("highscore.txt", "r") as f: + return int(f.read()) + except: + return 0 + return 0 + +def save_highscore(score): + with open("highscore.txt", "w") as f: + f.write(str(score)) + + # 蛇类 # 点以25为单位 class Snake(object): @@ -108,6 +124,9 @@ def main(): clock = pygame.time.Clock() scores = 0 isdead = False + + # ★ 新增:读取最高分 + highscore = load_highscore() # 蛇/食物 snake = Snake() @@ -116,6 +135,8 @@ def main(): while True: for event in pygame.event.get(): if event.type == pygame.QUIT: + # ★ 新增:退出前保存最高分 + save_highscore(highscore) sys.exit() if event.type == pygame.KEYDOWN: snake.changedirection(event.key) @@ -138,6 +159,10 @@ def main(): if isdead: show_text(screen,(100,200),'YOU DEAD!',(227,29,18),False,100) show_text(screen,(150,260),'press space to try again...',(0,0,22),False,30) + # ★ 新增:如果打破记录则更新 + if scores > highscore: + highscore = scores + save_highscore(highscore) # 食物处理 / 吃到+50分 # 当食物rect与蛇头重合,吃掉 -> Snake增加一个Node @@ -152,10 +177,12 @@ def main(): # 显示分数文字 show_text(screen,(50,500),'Scores: '+str(scores),(223,223,223)) + # ★ 新增:显示最高分 + show_text(screen,(50,50),'High Score: '+str(highscore),(180,180,180),False,40) pygame.display.update() clock.tick(10) if __name__ == '__main__': - main() \ No newline at end of file + main()