如何写贪吃蛇代码求代码
时间: 2023-05-27 20:04:21 浏览: 75
由于贪吃蛇代码较长,本回答只提供一个基础版的Python实现,仅供参考。
```python
import pygame
import random
# 初始化pygame
pygame.init()
# 设置窗口大小、标题、背景颜色
screen_width = 600
screen_height = 400
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption("贪吃蛇小游戏")
bg_color = (255, 255, 255)
# 贪吃蛇初始位置、速度
snake_x = screen_width // 2
snake_y = screen_height // 2
snake_speed = 10
# 贪吃蛇身体初始化
snake_body = [[snake_x, snake_y]]
snake_body_length = 1
# 食物初始位置(随机)
food_x = random.randint(0, screen_width // snake_speed) * snake_speed
food_y = random.randint(0, screen_height // snake_speed) * snake_speed
# 分数初始化
score = 0
# 游戏结束标志
game_over = False
# 设置字体
font = pygame.font.SysFont(None, 30)
# 定义绘制贪吃蛇函数
def draw_snake():
for i in range(snake_body_length):
pygame.draw.rect(screen, (0, 255, 0), [snake_body[i][0], snake_body[i][1], snake_speed, snake_speed])
# 定义绘制食物函数
def draw_food():
pygame.draw.circle(screen, (255, 0, 0), (food_x + snake_speed // 2, food_y + snake_speed // 2), snake_speed // 2)
# 定义显示得分函数
def show_score():
score_display = font.render("Score: " + str(score), True, (0, 0, 0))
screen.blit(score_display, (10, 10))
# 游戏循环
while not game_over:
# 检测事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_over = True
# 贪吃蛇移动
keys = pygame.key.get_pressed()
if keys[pygame.K_UP]:
snake_y -= snake_speed
if keys[pygame.K_DOWN]:
snake_y += snake_speed
if keys[pygame.K_LEFT]:
snake_x -= snake_speed
if keys[pygame.K_RIGHT]:
snake_x += snake_speed
# 贪吃蛇死亡判断
if snake_x < 0 or snake_x + snake_speed > screen_width or snake_y < 0 or snake_y + snake_speed > screen_height:
game_over = True
for i in range(1, snake_body_length):
if snake_x == snake_body[i][0] and snake_y == snake_body[i][1]:
game_over = True
# 贪吃蛇吃到食物
if snake_x == food_x and snake_y == food_y:
food_x = random.randint(0, screen_width // snake_speed) * snake_speed
food_y = random.randint(0, screen_height // snake_speed) * snake_speed
snake_body_length += 1
score += 10
snake_body.append([snake_body[-1][0], snake_body[-1][1]])
# 贪吃蛇身体移动
for i in range(snake_body_length - 1, 0, -1):
snake_body[i][0] = snake_body[i - 1][0]
snake_body[i][1] = snake_body[i - 1][1]
snake_body[0][0] = snake_x
snake_body[0][1] = snake_y
# 绘制游戏界面
screen.fill(bg_color)
draw_snake()
draw_food()
show_score()
pygame.display.update()
pygame.time.delay(100)
# 退出pygame
pygame.quit()
```