用python编写贪吃蛇300行代码
时间: 2024-12-18 09:16:59 浏览: 9
编写一个完整的贪吃蛇游戏的Python代码可能超过300行,因为需要考虑游戏循环、界面显示、键盘输入处理、蛇的移动、食物生成、碰撞检测等多个部分。以下是一个简单的版本,大约包含150行左右,但它只是一个基本框架:
```python
import pygame
import random
# 初始化Pygame
pygame.init()
# 设置窗口大小
screen = pygame.display.set_mode((480, 640))
pygame.display.set_caption("贪吃蛇")
snake_speed = 10
snake = [[10, 10], [9, 10], [8, 10]] # 蛇的身体
food_pos = [random.randint(1, 47), random.randint(1, 63)] # 食物位置
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_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"
screen.fill((0, 0, 0)) # 清屏
# 根据方向更新蛇的位置
for i, segment in enumerate(snake[:-1]):
snake[i] = [segment[0], segment[1]]
if direction == "up":
snake[-1][1] -1][1] += snake_speed
elif direction == "left":
snake[-1][0] -= snake_speed
else:
snake[-1][0] += snake_speed
# 检查蛇头是否吃到食物
if snake[0] == food_pos:
snake.append([random.randint(1, 47), random.randint(1, 63)])
food_pos = [random.randint(1, 47), random.randint(1, 63)]
else:
snake.pop(0) # 如果没吃到,删除蛇头
# 显示蛇和食物
for pos in snake:
pygame.draw.rect(screen, (255, 0, 0), pygame.Rect(pos[0], pos[1], 10, 10))
pygame.draw.rect(screen, (0, 255, 0), pygame.Rect(food_pos[0], food_pos[1], 10, 10))
pygame.display.flip()
pygame.time.delay(1000 // snake_speed)
# 结束游戏
```
这个代码只能运行在一个控制台窗口,并不包括图形化的游戏界面。如果你想创建一个更完整的游戏,可能会需要用到Pygame等图形库来构建用户界面,并且代码会更多。如果你对游戏编程感兴趣,建议查阅更详细的教程或源码学习。
阅读全文