溫馨提示×

怎么用python實現一個簡單的貪吃蛇游戲

小億
127
2024-03-21 19:21:54
欄目: 編程語言

下面是一個簡單的貪吃蛇游戲的Python實現代碼示例:

import pygame
import time
import random

pygame.init()

# 設置窗口大小
win_width = 800
win_height = 600
win = pygame.display.set_mode((win_width, win_height))
pygame.display.set_caption("貪吃蛇游戲")

# 設置顏色
black = (0, 0, 0)
white = (255, 255, 255)
red = (255, 0, 0)

# 設置蛇和食物初始位置
snake_block = 10
snake_speed = 15
snake_pos = [(win_width//2, win_height//2)]
food_pos = (random.randint(0, win_width//snake_block - 1) * snake_block, random.randint(0, win_height//snake_block - 1) * snake_block)

# 初始化方向
x_change = 0
y_change = 0

# 游戲主循環
run = True
while run:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_LEFT:
                x_change = -snake_block
                y_change = 0
            elif event.key == pygame.K_RIGHT:
                x_change = snake_block
                y_change = 0
            elif event.key == pygame.K_UP:
                x_change = 0
                y_change = -snake_block
            elif event.key == pygame.K_DOWN:
                x_change = 0
                y_change = snake_block
    
    # 更新蛇的位置
    new_pos = (snake_pos[0][0] + x_change, snake_pos[0][1] + y_change)
    snake_pos.insert(0, new_pos)
    
    # 檢查蛇是否吃到食物
    if snake_pos[0] == food_pos:
        food_pos = (random.randint(0, win_width//snake_block - 1) * snake_block, random.randint(0, win_height//snake_block - 1) * snake_block)
    else:
        snake_pos.pop()
    
    # 繪制窗口
    win.fill(black)
    for pos in snake_pos:
        pygame.draw.rect(win, white, (pos[0], pos[1], snake_block, snake_block))
    pygame.draw.rect(win, red, (food_pos[0], food_pos[1], snake_block, snake_block))
    
    pygame.display.update()
    
    # 控制蛇的速度
    pygame.time.Clock().tick(snake_speed)
    
# 退出游戲
pygame.quit()

這段代碼實現了一個簡單的貪吃蛇游戲,玩家可以通過方向鍵控制蛇的移動方向,吃到食物會增加蛇的長度,如果蛇撞到墻壁或者撞到自己就會游戲結束。希望對你有幫助!

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女