1、程序目标:玩家可以使用方向键控制贪吃蛇的移动方向,向上键使蛇向上移动,向下键使蛇向下移动,向左键使蛇向左移动,向右键使蛇向右移动。玩家需要控制蛇吃到食物,每吃到一个食物蛇的长度就会加 1,同时游戏难度也会逐渐加大,蛇的移动速度会加快,随着时间的推移,难度会变得越来越高。如果蛇撞到了边界或者撞到了自己的身体,游戏就会结束。玩家可以通过关闭游戏窗口来退出游戏。以下是一个基于 Python 的简单贪吃蛇游戏的代码实现。本实现使用了 pygame 模块来创建游戏窗口,渲染游戏场景和监听用户输入,同时使用 random 模块来生成随机食物。import pygameimport random#初始化 p
2、ygamepygame.init()#定义游戏窗口大小window_width=600window_height=600#创建游戏窗口screen=pygame.display.set_mode(window_width,window_height)#定义游戏场景颜色bg_color=(0,0,0)#定义蛇的初始位置和大小snake_x=window_width/2snake_y=window_height/2snake_size=10snake_speed=10#定义蛇的初始方向和长度snake_direction=rightsnake_length=1snake_body=(snake_x
3、,snake_y)#定义食物的初始位置和大小food_size=10food_x=random.randint(0,window_width-food_size)food_y=random.randint(0,window_height-food_size)food_color=(255,0,0)#游戏循环标志game_running=True#游戏循环while game_running:#监听用户输入for event in pygame.event.get():if event.type=pygame.QUIT:game_running=Falseelif event.type=pyga
4、me.KEYDOWN:if event.key=pygame.K_UP and snake_direction!=down:snake_direction=upelifevent.key=pygame.K_DOWNsnake_direction!=up:snake_direction=downelifevent.key=pygame.K_LEFTsnake_direction!=right:snake_direction=leftelifevent.key=pygame.K_RIGHTsnake_direction!=left:snake_direction=right#移动蛇的身体if sn
5、ake_direction=up:snake_y-=snake_speedelif snake_direction=down:snake_y+=snake_speedelif snake_direction=left:snake_x-=snake_speedelif snake_direction=right:snake_x+=snake_speedandandand#更新蛇的身体列表snake_body.insert(0,(snake_x,snake_y)if len(snake_body)snake_length:snake_body.pop()#绘制游戏场景screen.fill(bg_
6、color)pygame.draw.rect(screen,food_color,pygame.Rect(food_x,food_y,food_size,food_size)for x,y in snake_body:pygame.draw.rect(screen,(255,255,255),pygame.Rect(x,y,snake_size,snake_size)#检测蛇是否吃到了食物ifpygame.Rect(snake_x,snake_y,food_y,snake_size,food_size,snake_size).colliderect(pygame.Rect(food_x,foo
7、d_size):snake_length+=1food_x=random.randint(0,window_width-food_size)food_y=random.randint(0,window_height-food_size)#检测蛇是否撞到了墙壁if snake_x window_width orsnake_y window_height:game_running=False#检测蛇是否撞到了自己的身体for x,y in snake_body1:ifpygame.Rect(snake_x,snake_y,snake_size,snake_size).colliderect(pyg
8、ame.Rect(x,y,snake_size,snake_size):game_running=False#更新游戏窗口pygame.display.update()该游戏的注释如下:-import pygame:导入 pygame 模块,用于创建游戏窗口,渲染游戏场景和监听用户输入。-import random:导入 random 模块,用于生成随机食物的位置。-pygame.init():初始化 pygame。-window_width=600 和 window_height=600:定义游戏窗口的宽度和高度。-screen=pygame.display.set_mode(window_
9、width,window_height):创建游戏窗口。-bg_color=(0,0,0):定义游戏场景的颜色为黑色。-snake_x=window_width/2和 snake_y=window_height/2:定义蛇的初始位置为游戏窗口中心。-snake_size=10 和 snake_speed=10:定义蛇的初始大小和速度。-snake_direction=right:定义蛇的初始方向为向右。-snake_length=1 和 snake_body=(snake_x,snake_y):定义蛇的初始长度为 1,并初始化蛇的身体列表。-food_size=10,food_x=random
10、.randint(0,window_width-food_size),和food_y=random.randint(0,window_height-food_size):定义食物的初始大小和位置为随机生成。-food_color=(255,0,0):定义食物的颜色为红色。-game_running=True:定义游戏循环标志为真。-while game_running:进入游戏循环。-for event in pygame.event.get():监听用户输入。-if event.type=pygame.QUIT:如果用户关闭了游戏窗口,则退出游戏循环。-elif event.type=pygame.KEYDOWN:如果用户按下了键盘键,则检测按下的键并更新蛇的方向。-if len(snake_body)snake_length:snake_body.pop():如果蛇的长度超过了定义的长度,则删除蛇身体列表中的最后一个元素。-screen.fill(bg_color):填充游戏窗口为黑色。-pygame.draw.rect(screen,food_color,pygame.Rect(food_x,food_y,food_size,food_size):绘制食物。-for x,y in snake_body:pygame.draw.rect(screen,