你现在的身份是一名上市游戏公司的开发员请帮我用Python写一个贪吃蛇游戏
时间: 2024-02-27 07:58:54 浏览: 131
Python编写一个贪吃蛇游戏
好的,以下是用 Python 实现的贪吃蛇游戏的代码,希望能帮到你:
```python
import pygame
import random
# 初始化 pygame 库
pygame.init()
# 设置游戏界面大小、背景颜色
screen = pygame.display.set_mode((600, 600))
pygame.display.set_caption('贪吃蛇')
bg_color = pygame.Color(0, 0, 0)
# 定义蛇和食物的大小、速度、颜色等参数
snake_size = 20
food_size = 20
snake_speed = 20
snake_color = pygame.Color(255, 255, 255)
food_color = pygame.Color(255, 0, 0)
# 定义游戏结束的函数
def game_over():
pygame.quit()
exit()
# 定义主函数,游戏的核心逻辑在此实现
def main():
# 初始化蛇的初始位置和长度
snake_pos = [[100, 40], [80, 40], [60, 40]]
snake_len = len(snake_pos)
# 初始化食物的位置
food_pos = [random.randint(1, 29) * 20, random.randint(1, 29) * 20]
# 初始化方向,初始向右移动
direction = 'right'
# 设置游戏时钟
clock = pygame.time.Clock()
# 游戏循环
while True:
# 处理游戏事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_over()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP and direction != 'down':
direction = 'up'
elif event.key == pygame.K_DOWN and direction != 'up':
direction = 'down'
elif event.key == pygame.K_LEFT and direction != 'right':
direction = 'left'
elif event.key == pygame.K_RIGHT and direction != 'left':
direction = 'right'
# 移动蛇
if direction == 'up':
new_head = [snake_pos[0][0], snake_pos[0][1] - snake_speed]
elif direction == 'down':
new_head = [snake_pos[0][0], snake_pos[0][1] + snake_speed]
elif direction == 'left':
new_head = [snake_pos[0][0] - snake_speed, snake_pos[0][1]]
elif direction == 'right':
new_head = [snake_pos[0][0] + snake_speed, snake_pos[0][1]]
snake_pos.insert(0, new_head)
# 判断是否吃到食物
if snake_pos[0] == food_pos:
food_pos = [random.randint(1, 29) * 20, random.randint(1, 29) * 20]
else:
snake_pos.pop()
# 判断是否碰到墙壁或自身
if snake_pos[0][0] < 0 or snake_pos[0][0] > 580 or snake_pos[0][1] < 0 or snake_pos[0][1] > 580:
game_over()
for i in range(1, snake_len):
if snake_pos[0] == snake_pos[i]:
game_over()
# 绘制游戏界面
screen.fill(bg_color)
pygame.draw.rect(screen, food_color, pygame.Rect(food_pos[0], food_pos[1], food_size, food_size))
for pos in snake_pos:
pygame.draw.rect(screen, snake_color, pygame.Rect(pos[0], pos[1], snake_size, snake_size))
pygame.display.update()
# 控制游戏帧率
clock.tick(5)
# 启动游戏
if __name__ == '__main__':
main()
```
希望这份代码能够帮助你实现一个简单的贪吃蛇游戏。如果你有其他问题或者需要进一步的帮助,欢迎随时向我提出。
阅读全文