返回

趣味编程:Python小游戏 -- 贪吃蛇

闲谈

Python小游戏 -- 贪吃蛇

贪吃蛇是一款经典的游戏,起源于20世纪70年代,至今仍受到许多人的喜爱。它是一款简单却有趣的休闲游戏,玩家需要控制一条贪吃蛇,吃掉关卡中的食物,同时避免撞到障碍物或自身身体。随着游戏进行,贪吃蛇会变得越来越长,难度也会逐渐增加。

今天,我们就来用Python语言编写一款贪吃蛇小游戏。Python是一种功能强大的编程语言,常用于web开发、数据分析、机器学习等领域。它以其简单的语法、丰富的库和社区支持而广受欢迎。

我们首先导入游戏开发所需的模块:

import pygame
import sys
import random
  • pygame模块是Python中一个流行的游戏开发库,提供了丰富的游戏开发功能和API。
  • sys模块提供了系统级功能,如程序退出。
  • random模块提供了随机数生成功能。

接下来,我们创建游戏窗口并设置游戏的基本属性。

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("贪吃蛇")
clock = pygame.time.Clock()
  • pygame.init()初始化pygame库。
  • pygame.display.set_mode((640, 480))创建640x480像素的游戏窗口。
  • pygame.display.set_caption("贪吃蛇")设置游戏窗口的标题。
  • clock = pygame.time.Clock()创建一个时钟对象,用于控制游戏循环。

接下来,我们定义游戏中的贪吃蛇。

snake = [(200, 200), (200, 220), (200, 240)]
snake_direction = (10, 0)
  • snake是一个列表,其中每个元素都是蛇身体的一个方块的位置。
  • snake_direction是一个元组,表示蛇的移动方向。

接下来,我们定义游戏中的食物。

food = (300, 300)

接下来,我们编写游戏的主循环。

while True:
    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:
                snake_direction = (0, -10)
            elif event.key == pygame.K_DOWN:
                snake_direction = (0, 10)
            elif event.key == pygame.K_LEFT:
                snake_direction = (-10, 0)
            elif event.key == pygame.K_RIGHT:
                snake_direction = (10, 0)

    # 更新蛇的身体位置
    for i in range(len(snake) - 1, 0, -1):
        snake[i] = snake[i - 1]

    # 更新蛇头位置
    snake[0] = (snake[0][0] + snake_direction[0], snake[0][1] + snake_direction[1])

    # 检查是否吃到食物
    if snake[0] == food:
        snake.append((food[0], food[1]))
        food = (random.randint(0, 630), random.randint(0, 470))

    # 检查是否撞到墙壁或自身身体
    if snake[0][0] < 0 or snake[0][0] > 640 or snake[0][1] < 0 or snake[0][1] > 480 or snake[0] in snake[1:]:
        pygame.quit()
        sys.exit()

    # 填充游戏窗口
    screen.fill((0, 0, 0))

    # 绘制食物
    pygame.draw.rect(screen, (0, 255, 0), (food[0], food[1], 10, 10))

    # 绘制蛇的身体
    for i in range(len(snake)):
        pygame.draw.rect(screen, (255, 255, 255), (snake[i][0], snake[i][1], 10, 10))

    # 更新游戏画面
    pygame.display.update()

    # 控制游戏速度
    clock.tick(10)

在主循环中,我们首先处理游戏事件,如键盘输入和窗口关闭。然后,我们更新蛇的身体位置和方向。接着,我们检查是否吃到食物或撞到墙壁或自身身体。如果游戏结束,我们退出游戏。否则,我们填充游戏窗口,绘制食物和蛇的身体,并更新游戏画面。最后,我们控制游戏速度,使游戏流畅运行。

以上便是Python贪吃蛇小游戏的完整代码。您可以在自己的电脑上运行它,体验亲手编写游戏的乐趣。