Python实现贪吃蛇游戏
贪吃蛇是一款经典的小游戏,它的目标是控制一条蛇在屏幕上移动,吃到屏幕上出现的食物,每吃到一个食物,蛇的长度就会增加,如果蛇碰到自己的身体或者屏幕边缘,游戏就结束了,在这篇文章中,我们将使用Python编程语言来实现这个游戏。
我们需要安装pygame库,pygame是一个用于开发视频游戏的Python模块,它包含了一些用于处理图形、声音和用户输入的函数,我们可以使用pip来安装pygame库,命令如下:
pip install pygame
接下来,我们来编写贪吃蛇游戏的代码,我们需要导入pygame库,并初始化游戏窗口:
import pygame
import sys
初始化pygame
pygame.init()
设置窗口大小
screen_size = (640, 480)
screen = pygame.display.set_mode(screen_size)
设置窗口标题
pygame.display.set_caption("贪吃蛇")
我们需要定义一些常量,如颜色、食物的大小和位置等:
定义颜色 WHITE = (255, 255, 255) GREEN = (0, 255, 0) RED = (255, 0, 0) 定义食物的大小和位置 FOOD_SIZE = 20 food_pos = [320, 240]
接下来,我们需要定义蛇的数据结构,蛇由一系列的坐标组成,每个坐标代表蛇身体的一个部分,我们还需要一个变量来记录蛇的移动方向:
定义蛇的数据结构 snake_body = [[100, 100], [80, 100], [60, 100]] snake_dir = "RIGHT"
我们需要定义一个函数来绘制蛇和食物:
def draw():
# 清空屏幕
screen.fill(WHITE)
# 绘制蛇和食物
for pos in snake_body:
pygame.draw.rect(screen, GREEN, pygame.Rect(pos[0], pos[1], FOOD_SIZE, FOOD_SIZE))
pygame.draw.rect(screen, RED, pygame.Rect(food_pos[0], food_pos[1], FOOD_SIZE, FOOD_SIZE))
接下来,我们需要定义一个函数来处理用户的输入:
def handle_input():
global snake_dir
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_UP and snake_dir != "DOWN":
snake_dir = "UP"
elif event.key == pygame.K_DOWN and snake_dir != "UP":
snake_dir = "DOWN"
elif event.key == pygame.K_LEFT and snake_dir != "RIGHT":
snake_dir = "LEFT"
elif event.key == pygame.K_RIGHT and snake_dir != "LEFT":
snake_dir = "RIGHT"
接下来,我们需要定义一个函数来更新蛇的位置:
def update():
global snake_body, food_pos, snake_dir
new_head = [snake_body[0][0] + (FOOD_SIZE if snake_dir == "RIGHT" else -FOOD_SIZE), snake_body[0][1] + (FOOD_SIZE if snake_dir == "DOWN" else -FOOD_SIZE)]
snake_body.insert(0, new_head)
if new_head == food_pos:
food_pos = [random.randrange(1, screen_size[0] // FOOD_SIZE) * FOOD_SIZE, random.randrange(1, screen_size[1] // FOOD_SIZE) * FOOD_SIZE]
else:
snake_body.pop()
我们需要定义一个主循环来控制游戏的逻辑:
while True:
# 处理输入和事件
handle_input()
update()
# 绘制游戏画面和分数等元素(如果有的话)



还没有评论,来说两句吧...