Python实现贪吃蛇游戏

贪吃蛇是一款经典的电子游戏,它的玩法简单,但却能让人上瘾,在这篇文章中,我们将使用Python编程语言来实现一个贪吃蛇游戏,我们将使用Python的pygame库来创建游戏窗口和处理游戏逻辑。

我们需要安装pygame库,在命令行中输入以下命令来安装:

pip install pygame

接下来,我们开始编写贪吃蛇游戏的代码,首先导入所需的库:

import pygame
import sys
import random

我们定义一些常量和全局变量:

初始化pygame
pygame.init()
设置屏幕大小
screen_width = 640
screen_height = 480
screen = pygame.display.set_mode((screen_width, screen_height))
设置颜色
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)
green = (0, 255, 0)
blue = (0, 0, 255)
设置蛇的大小和速度
snake_size = 20
snake_speed = 10

接下来,我们定义一个蛇类,用于表示游戏中的蛇:

class Snake:
    def __init__(self):
        self.positions = [(100, 100), (80, 100), (60, 100)]
        self.direction = 'right'
    def move(self):
        new_position = (self.positions[0][0] + snake_speed * self.direction[0], self.positions[0][1] + snake_speed * self.direction[1])
        self.positions.insert(0, new_position)
        self.positions.pop()
    def change_direction(self, direction):
        if direction == 'up' and self.direction != 'down':
            self.direction = direction
        elif direction == 'down' and self.direction != 'up':
            self.direction = direction
        elif direction == 'left' and self.direction != 'right':
            self.direction = direction
        elif direction == 'right' and self.direction != 'left':
            self.direction = direction

贪吃蛇python 贪吃蛇python代码

现在,我们定义一个食物类,用于表示游戏中的食物:

class Food:
    def __init__(self):
        self.position = (random.randint(0, screen_width // snake_size - 1) * snake_size, random.randint(0, screen_height // snake_size - 1) * snake_size)

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

def main():
    snake = Snake()
    food = Food()
    clock = pygame.time.Clock()
    game_over = False
    while not game_over:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                game_over = True
            elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_UP and snake.direction != 'down':
                    snake.change_direction('up')
                elif event.key == pygame.K_DOWN and snake.direction != 'up':
                    snake.change_direction('down')
                elif event.key == pygame.K_LEFT and snake.direction != 'right':
                    snake.change_direction('left')
                elif event.key == pygame.K_RIGHT and snake.direction != 'left':
                    snake.change_direction('right')
        snake.move()
        screen.fill(black)
        for position in snake.positions:
            pygame.draw.rect(screen, green, pygame.Rect(position[0], position[1], snake_size, snake_size))
        pygame.draw.rect(screen, red, pygame.Rect(food.position[0], food.position[1], snake_size, snake_size))
        if snake.positions[0] == food.position:
            food = Food()
        else:
            snake.positions.pop()
        pygame.display.flip()
        clock.tick(30)
    pygame.quit()
    sys.exit()

我们调用main函数来启动游戏:

if __name__ == '__main__':
    main()

至此,我们已经完成了一个简单的贪吃蛇游戏的实现,你可以尝试运行这段代码,看看游戏的效果,当然,这只是一个基本的实现,还有很多可以改进的地方,例如添加计分功能、优化游戏界面等,希望这篇文章能帮助你入门Python游戏开发。