为我写一个贪吃蛇python代码
时间: 2023-03-12 08:58:22 浏览: 71
我写的贪吃蛇的Python代码如下:import pygame
import syspygame.init()width = 500
height = 500
screen = pygame.display.set_mode((width, height))# Snake body
snake_pos = [50, 50]
snake_body = [[50, 50], [40, 50], [30, 50]]# Snake food
food_pos = [200, 200]
food_spawn = True# Direction
direction = 'RIGHT'
change_direction = direction# Score
score = 0# Colors
white = (255, 255, 255)
red = (255, 0, 0)
green = (0, 255, 0)# Game over
game_over = False# 定义贪吃蛇游戏的速度
clock = pygame.time.Clock()# 定义游戏的字体
myfont = pygame.font.SysFont('Arial', 20)# 开始游戏的循环
while not game_over:
# 检查游戏是否退出
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
# 检查是否有方向键按下
if event.type == pygame.KEYDOWN:
# 上
if event.key == pygame.K_UP:
change_direction = 'UP'
# 下
if event.key == pygame.K_DOWN:
change_direction = 'DOWN'
# 左
if event.key == pygame.K_LEFT:
change_direction = 'LEFT'
# 右
if event.key == pygame.K_RIGHT:
change_direction = 'RIGHT' # 根据方向改变蛇的位置
if change_direction == 'UP':
snake_pos[1] -= 10
if change_direction == 'DOWN':
snake_pos[1] += 10
if change_direction == 'LEFT':
snake_pos[0] -= 10
if change_direction == 'RIGHT':
snake_pos[0] += 10
direction = change_direction # 增加蛇的长度
snake_body.insert(0, list(snake_pos)) # 蛇如果吃到食物,分数加1,并产生一个新的食物
if snake_pos == food_pos:
score += 1
food_spawn = False
else:
snake_body.pop() # 如果食物没有被吃掉,则重新产生一个食物
if not food_spawn:
food_pos = [random.randrange(1, width // 10) * 10, random.randrange(1, height // 10) * 10]
food_spawn = True # 如果蛇的头碰到自身的身体或者撞到边界,游戏结束
if snake_pos[0] < 0 or snake_pos[0] > width or snake_pos[1] < 0 or snake_pos[1] > height:
game_over = True
for block in snake_body[1:]:
if snake_pos[0] == block[0] and snake_pos[1] == block[1]:
game_over = True # 绘制贪吃蛇
screen.fill(white)
for pos in snake_body:
pygame.draw.rect(screen, green, pygame.Rect(pos[0], pos[1], 10, 10))
pygame.draw.rect(screen, red, pygame.Rect(food_pos[0], food_pos[1], 10, 10)) # 绘制分数
score_font = myfont.render('Score: %s' % (score), True, (0, 255, 0))
screen.blit(score_font, (5, 5)) # 刷新屏幕
pygame.display.update() # 控制游戏速度
clock.tick(10)
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)