Python——贪吃蛇

星和月 2024-09-14 09:05:04 阅读 80

以下是一个简单的贪吃蛇游戏的Python代码示例:

<code>import pygame

import time

import random

# 初始化 Pygame

pygame.init()

# 定义颜色

BLACK = (0, 0, 0)

WHITE = (255, 255, 255)

RED = (255, 0, 0)

GREEN = (0, 255, 0)

BLUE = (0, 0, 255)

# 设置屏幕尺寸

screen_width = 800

screen_height = 600

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

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

# 游戏帧率

clock = pygame.time.Clock()

snake_block_size = 20

# 字体设置

font_style = pygame.font.SysFont(None, 50)

score_font = pygame.font.SysFont(None, 35)

def your_score(score):

value = score_font.render("Your Score: " + str(score), True, WHITE)

screen.blit(value, [0, 0])

def our_snake(snake_block_size, snake_list):

for x in snake_list:

pygame.draw.rect(screen, GREEN, [x[0], x[1], snake_block_size, snake_block_size])

# 游戏主循环

def game_loop():

game_over = False

game_quit = False

x1 = screen_width / 2

y1 = screen_height / 2

x1_change = 0

y1_change = 0

snake_list = []

snake_length = 1

foodx = round(random.randrange(0, screen_width - snake_block_size) / 20.0) * 20.0

foody = round(random.randrange(0, screen_height - snake_block_size) / 20.0) * 20.0

while not game_quit:

while game_over == True:

screen.fill(BLACK)

message = font_style.render("Game Over! Press Q-Quit or C-Play Again", True, WHITE)

screen.blit(message, [screen_width / 6, screen_height / 3])

your_score(snake_length - 1)

pygame.display.update()

# 游戏结束等待用户输入

for event in pygame.event.get():

if event.type == pygame.QUIT:

game_quit = True

game_over = False

if event.type == pygame.KEYDOWN:

if event.key == pygame.K_q:

game_quit = True

game_over = False

if event.key == pygame.K_c:

game_loop()

for event in pygame.event.get():

if event.type == pygame.QUIT:

game_quit = True

if event.type == pygame.KEYDOWN:

if event.key == pygame.K_LEFT:

x1_change = -snake_block_size

y1_change = 0

elif event.key == pygame.K_RIGHT:

x1_change = snake_block_size

y1_change = 0

elif event.key == pygame.K_UP:

y1_change = -snake_block_size

x1_change = 0

elif event.key == pygame.K_DOWN:

y1_change = snake_block_size

x1_change = 0

if x1 >= screen_width or x1 < 0 or y1 >= screen_height or y1 < 0:

game_over = True

x1 += x1_change

y1 += y1_change

screen.fill(BLACK)

pygame.draw.rect(screen, RED, [foodx, foody, snake_block_size, snake_block_size])

snake_head = []

snake_head.append(x1)

snake_head.append(y1)

snake_list.append(snake_head)

if len(snake_list) > snake_length:

del snake_list[0]

for x in snake_list[:-1]:

if x == snake_head:

game_over = True

our_snake(snake_block_size, snake_list)

your_score(snake_length - 1)

pygame.display.update()

if x1 == foodx and y1 == foody:

foodx = round(random.randrange(0, screen_width - snake_block_size) / 20.0) * 20.0

foody = round(random.randrange(0, screen_height - snake_block_size) / 20.0) * 20.0

snake_length += 1

clock.tick(10)

pygame.quit()

quit()

game_loop()

这个代码使用Pygame库来创建一个简单的贪吃蛇游戏。在游戏中,玩家通过键盘控制贪吃蛇的移动方向,目标是吃到食物并尽可能多地增长长度。如果贪吃蛇碰到边界或自己的身体,游戏结束。游戏过程中会显示当前的分数。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。