亦有资源网

C++语言基础到进阶学习资源汇总

这是一个简易的贪吃蛇代码(简单的贪吃蛇代码)

import pygame

import random

# 初始化pygame

pygame.init()

# 游戏窗口尺寸

WIDTH, HEIGHT = 800, 600

# 蛇的方块大小

BLOCK_SIZE = 20

# 设置游戏窗口

screen = pygame.display.set_mode((WIDTH, HEIGHT))

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

# 颜色定义

WHITE = (255, 255, 255)

GREEN = (0, 255, 0)

RED = (255, 0, 0)

BLACK = (0, 0, 0)

# 蛇类

class Snake:

def __init__(self):

self.segments = [(200, 200), (180, 200), (160, 200)]

self.direction = 'right'

def move(self):

head_x = self.segments[0][0]

head_y = self.segments[0][1]

if self.direction == 'right':

new_head = (head_x + BLOCK_SIZE, head_y)

elif self.direction == 'left':

new_head = (head_x - BLOCK_SIZE, head_y)

elif self.direction == 'up':

new_head = (head_x, head_y - BLOCK_SIZE)

else:

new_head = (head_x, head_y + BLOCK_SIZE)

self.segments = [new_head] + self.segments[:-1]

def grow(self):

tail = self.segments[-1]

self.segments.append(tail)

def draw(self):

for segment in self.segments:

pygame.draw.rect(screen, GREEN,

(segment[0], segment[1], BLOCK_SIZE, BLOCK_SIZE))

# 食物类

class Food:

def __init__(self):

self.x = random.randint(0, (WIDTH - BLOCK_SIZE) // BLOCK_SIZE) * BLOCK_SIZE

self.y = random.randint(0, (HEIGHT - BLOCK_SIZE) // BLOCK_SIZE) * BLOCK_SIZE

def draw(self):

pygame.draw.rect(screen, RED,

(self.x, self.y, BLOCK_SIZE, BLOCK_SIZE))

# 游戏主循环

def main():

clock = pygame.time.Clock()

snake = Snake()

food = Food()

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.direction = 'up'

elif event.key == pygame.K_DOWN and snake.direction!= 'up':

snake.direction = 'down'

elif event.key == pygame.K_LEFT and snake.direction!= 'right':

snake.direction = 'left'

elif event.key == pygame.K_RIGHT and snake.direction!= 'left':

snake.direction = 'right'

snake.move()

# 检查蛇是否吃到食物

if snake.segments[0][0] == food.x and snake.segments[0][1] == food.y:

snake.grow()

food = Food()

# 检查蛇是否撞到边界

if snake.segments[0][0] < 0 or snake.segments[0][0] >= WIDTH or \

snake.segments[0][1] < 0 or snake.segments[0][1] >= HEIGHT:

game_over = True

# 检查蛇是否撞到自己

for segment in snake.segments[1:]:

if segment == snake.segments[0]:

game_over = True

screen.fill(BLACK)

snake.draw()

food.draw()

pygame.display.flip()

clock.tick(10)

pygame.quit()

if __name__ == "__main__":

main()

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言