用ptython写贪吃蛇

本文提供了一个使用Python和pygame库编写的简单贪吃蛇游戏的代码示例,包括初始化游戏、设置屏幕尺寸、游戏标题和游戏循环等关键部分。
摘要由CSDN通过智能技术生成

当然可以用Python编写贪吃蛇游戏!下面是一个简单的代码示例,可以让你开始编写自己的贪吃蛇游戏:

```python import pygame import random

初始化游戏

pygame.init()

设置屏幕尺寸

screen_width = 500 screen_height = 500 screen = pygame.display.set_mode((screen_width, screen_height))

设置游戏标题

pygame.display.set_caption("贪吃蛇")

设置游戏变量

snake_position = [100, 50] snake_body = [[100, 50], [90, 50], [80, 50]] food_position = [random.randrange(1, 50) * 10, random.randrange(1, 50) * 10] food_spawn = True direction = "RIGHT" change_to = direction score = 0

游戏循环

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_RIGHT:
            change_to = "RIGHT"
        elif event.key == pygame.K_LEFT:
            change_to = "LEFT"
        elif event.key == pygame.K_UP:
            change_to = "UP"
        elif event.key == pygame.K_DOWN:
            change_to = "DOWN"

# 方向处理
if change_to == "RIGHT" and direction != "LEFT":
    direction = "RIGHT"
elif change_to == "LEFT" and direction != "RIGHT":
    direction = "LEFT"
elif change_to == "UP" and direction != "DOWN":
    direction = "UP"
elif change_to == "DOWN" and direction != "UP":
    direction = "DOWN"

# 蛇移动
if direction == "RIGHT":
    snake_position[0] += 10
elif direction == "LEFT":
    snake_position[0] -= 10
elif direction == "UP":
    snake_position[1] -= 10
elif direction == "DOWN":
    snake_position[1] += 10

# 蛇身更新
snake_body.insert(0, list(snake_position))
if snake_position == food_position:
    food_spawn = False
    score += 10
else:
    snake_body.pop()

# 食物出现
if not food_spawn:
    food_position = [random.randrange(1, 50) * 10, random.randrange(1, 50) * 10]
food_spawn = True

# 重绘屏幕
screen.fill((0, 0, 0))
for position in snake_body:
    pygame.draw.rect(screen, (255, 255, 255), pygame.Rect(
        position[0], position[1], 10, 10))

pygame.draw.rect(screen, (255, 0, 0), pygame.Rect(
    food_position[0], food_position[1], 10, 10))

# 游戏结束判断
if snake_position[0] < 0 or snake_position[0] > screen_width-10:
    pygame.quit()
    quit()
if snake_position[1] < 0 or snake_position[1] > screen_height-10:
    pygame.quit()
    quit()
for block in snake_body[1:]:
    if snake
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值