用Python语言写贪吃蛇代码
时间: 2024-09-29 07:16:17 浏览: 59
编写一个基本的贪吃蛇游戏的Python代码通常会涉及到一些图形用户界面库(如pygame),以及列表结构来跟踪蛇的身体位置。下面是一个简单的例子:
```python
import pygame
import random
# 初始化Pygame
pygame.init()
# 设置窗口大小
screen = pygame.display.set_mode((400, 400))
pygame.display.set_caption("贪吃蛇")
# 定义颜色
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
# 定义游戏变量
snake_speed = 15
snake_pos = [[100, 100], [90, 100], [80, 100]] # 起始位置和初始身体部分
food_pos = [random.randint(0, 390), random.randint(0, 390)] # 食物的位置
direction = "right"
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT and direction != "right":
direction = "left"
elif event.key == pygame.K_RIGHT and direction != "left":
direction = "right"
elif event.key == pygame.K_UP and direction != "down":
direction = "up"
elif event.key == pygame.K_DOWN and direction != "up":
direction = "down"
# 更新蛇的位置
if direction == "left":
snake_pos.insert(0, [snake_pos[0][0] - snake_speed, snake_pos[0][1]])
elif direction == "right":
snake_pos.insert(0, [snake_pos[0][0] + snake_speed, snake_pos[0][1]])
elif direction == "up":
snake_pos.insert(0, [snake_pos[0][0], snake_pos[0][1] - snake_speed])
else:
snake_pos.insert(0, [snake_pos[0][0], snake_pos[0][1] + snake_speed])
# 判断蛇是否吃到食物
if snake_pos[0] == food_pos:
food_pos = [random.randint(0, 390), random.randint(0, 390)]
snake_pos.append([snake_pos[-1][0], snake_pos[-1][1]])
# 判断蛇是否碰到边界或自身
if snake_pos[0] in snake_pos[1:]:
print("Game Over!")
pygame.quit()
quit()
screen.fill(BLACK)
for pos in snake_pos:
pygame.draw.rect(screen, WHITE, [pos[0], pos[1], 10, 10])
pygame.draw.rect(screen, RED, [food_pos[0], food_pos[1], 10, 10])
pygame.display.update()
```
在这个代码中,我们首先导入必要的库,然后初始化pygame。接着定义了屏幕尺寸、颜色和游戏的基本规则。游戏的主要循环里,我们监听用户的键盘输入,并更新蛇的位置。如果蛇吃到了食物,就增长长度并生成新食物;如果蛇碰到边界或自己,游戏结束。
注意:这只是一个基础版本,实际的贪吃蛇游戏可能需要更复杂的逻辑,比如得分系统、碰撞检测优化等。
阅读全文