diff --git a/my_game.py b/my_game.py
index 272f99a..b881e5b 100644
--- a/my_game.py
+++ b/my_game.py
@@ -1,6 +1,7 @@
 import pygame
 from pygame import locals
 import random
+import json
 
 pygame.init()  # 初始化
 
@@ -14,7 +15,7 @@ class Block(pygame.sprite.Sprite):      # 障碍物精灵类
         # 障碍物绘制坐标
         self.rect.x = 1000
         self.rect.y = 500 - self.rect.height
-
+        self.score = 1
 class Player(pygame.sprite.Sprite):     # 悟空
     def __init__(self, image):
         super().__init__()
@@ -40,6 +41,8 @@ hero = [pygame.image.load('hero1.png'),
         pygame.image.load('hero3.png'),
         pygame.image.load('hero4.png'),
         pygame.image.load('hero5.png')]
+score_audio = pygame.mixer.Sound('score.wav')
+basic_font = pygame.font.Font('STKAITI.TTF',18)
 index = 0   
 y = 400
 jumpState = "runing"
@@ -48,9 +51,15 @@ road_x = 0
 bg_x = 0
 time = 0
 gamestate = True
-
+score=0
+oldscore=score
 block_list =pygame.sprite.Group()   # 创建精灵组
-
+with open('record.txt','r',encoding='utf-8') as f:
+    content = f.read()
+    record = json.loads(content)
+    one = record["第1名"]
+    two = record["第2名"]
+    thr = record["第3名"]
 while True:
     for event in pygame.event.get():
         if event.type == locals.QUIT:
@@ -60,7 +69,7 @@ while True:
             if jumpState == "runing":
                 if event.key == locals.K_SPACE:
                     jumpState = "up"
-    
+    speed = 8 + score // 3
     # 悟空造型
     wukong = Player(hero[index])
     if jumpState == "runing":       # 跑步状态下
@@ -91,7 +100,7 @@ while True:
             bg_x = 0
         screen.blit(background, (bg_x, 0))      # 远景
 
-        road_x -= 8
+        road_x -= speed
         if road_x<=-1000:
             road_x = 0
         screen.blit(road, (road_x, 500))       # 道路
@@ -114,7 +123,36 @@ while True:
                 gameover = pygame.image.load('gameover.png')     # 游戏结束
                 screen.blit(gameover, (400, 200))
                 gamestate = False
+                if score > thr:
+                    if score > one:
+                        record["第1名"]=score
+                        record["第2名"]=one
+                        record["第3名"]=two
+                    elif score > two:
+                        record["第2名"]=score
+                        record["第3名"]=two
+                    else:
+                        record["第3名"]=score
+                record = json.dumps(record,ensure_ascii = False)
+                with open('record.txt','w',encoding = 'utf-8') as f:
+                    f.write(record)
+            else:
+                if(sprite.rect.x + sprite.rect.width) < wukong.rect.x:
+                    score += sprite.score
+                    sprite.score = 0
+        if score > oldscore:
+            score_audio.play()
+            oldscore = score
 
+        
         # 刷新画面
+        scoresurf = basic_font.render("分数:"+str(score),True,(255,255,255)) 
+        screen.blit(scoresurf,(850,20))
+        scoresurf = basic_font.render("第一名:"+str(score),True,(255,255,255)) 
+        screen.blit(scoresurf,(850,50))
+        scoresurf = basic_font.render("第二名:"+str(score),True,(255,255,255)) 
+        screen.blit(scoresurf,(850,80))
+        scoresurf = basic_font.render("第三名:"+str(score),True,(255,255,255)) 
+        screen.blit(scoresurf,(850,110))
         pygame.display.update()
-        FPS.tick(60)
\ No newline at end of file
+        FPS.tick(60)
diff --git a/record.txt b/record.txt
index 779a134..ea37695 100644
--- a/record.txt
+++ b/record.txt
@@ -1 +1 @@
-{"第1名": 0, "第2名": 0, "第3名": 0}
\ No newline at end of file
+{"第1名": 4, "第2名": 1, "第3名": 0}
\ No newline at end of file