复制
收藏
提问
研究
帮我写段贪吃蛇的代码
4月前
全网
文档
学术
百科
知识库
参考了10个来源并总结
查看步骤
全网检索信息
贪吃蛇
代码
找到“cloud.tencent”、“cloud.tencent”、“知乎专栏”等10个网站资料
回答完成
回答研究模式
更简洁一些
贪吃蛇是一款经典的电子游戏,其基本玩法是控制一条蛇在屏幕上移动,通过吃食物来增长蛇的长度,同时避免撞到屏幕边缘或自己的身体。以下是使用Python语言实现贪吃蛇游戏的一个简单示例代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pygame
import random
# 初始化pygame
pygame.init()
# 定义游戏画面大小和速度
window_width = 500
window_height = 500
speed = 20
# 创建窗口
window = pygame.display.set_mode((window_width, window_height))
# 设置窗口标题
pygame.display.set_caption('贪吃蛇')
# 定义颜色
black = (0, 0, 0)
white = (255, 255, 255)
red = (255, 0, 0)
green = (0, 255, 0)
# 蛇的初始位置和方向
snake_pos = [100, 50]
snake_body = [[100, 50], [90, 50], [80, 50]]
snake_direction = 'RIGHT'
# 食物的初始位置
food_pos = [300, 300]
food_spawn()
# 游戏主循环
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 or event.key == ord('w'):
snake_direction = 'UP'
elif event.key == pygame.K_DOWN or event.key == ord('s'):
snake_direction = 'DOWN'
elif event.key == pygame.K_LEFT or event.key == ord('a'):
snake_direction = 'LEFT'
elif event.key == pygame.K_RIGHT or event.key == ord('d'):
snake_direction = 'RIGHT'
# 检查蛇是否吃到食物
if snake_pos == food_pos:
food_spawn()
# 蛇增长
snake_body.insert(0, snake_pos)
# 移动蛇
x = snake_pos[0]
y = snake_pos[1]
if snake_direction == 'UP':
y -= 10
elif snake_direction == 'DOWN':
y += 10
elif snake_direction == 'LEFT':
x -= 10
elif snake_direction == 'RIGHT':
x += 10
# 检查蛇是否撞到自己
if [x, y] in snake_body[1:]:
pygame.quit()
quit()
# 更新蛇的位置
snake_pos = [x, y]
snake_body[0] = snake_pos
# 绘制窗口内容
window.fill(black)
for pos in snake_body:
pygame.draw.rect(window, green, pygame.Rect(pos[0], pos[1], 10, 10))
pygame.draw.rect(window, red, pygame.Rect(food_pos[0], food_pos[1], 10, 10))
pygame.display.update()
# 控制蛇的移动速度
pygame.time.Clock().tick(speed)
# 食物生成函数
def food_spawn():
food_pos = [random.randrange(0, window_width, 10),
random.randrange(0, window_height, 10)]
这段代码使用了pygame
库来创建贪吃蛇游戏。游戏窗口大小为500x500像素,蛇和食物的大小都为10像素。玩家可以通过键盘的上下左右键或WASD键来控制蛇的移动方向。当蛇头碰到边界或自己的身体时,游戏结束。每次蛇吃到食物,食物会在随机位置重新生成,并且蛇的长度会增加。67
你觉得结果怎么样?