百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 软件资讯 > 正文

游戏代码运行1:贪吃蛇游戏

ninehua 2025-03-10 19:05 2 浏览

以下是一个使用 Pygame 实现的简单贪吃蛇游戏代码。这个代码适合初学者学习,涵盖了游戏循环、事件处理、碰撞检测等核心概念。


贪吃蛇游戏代码

python

import pygame
import time
import random

# 初始化 Pygame
pygame.init()

# 定义颜色
WHITE = (255, 255, 255)
YELLOW = (255, 255, 102)
BLACK = (0, 0, 0)
RED = (213, 50, 80)
GREEN = (0, 255, 0)
BLUE = (50, 153, 213)

# 定义屏幕尺寸
WIDTH, HEIGHT = 600, 400

# 创建屏幕
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("贪吃蛇游戏")

# 定义时钟
clock = pygame.time.Clock()

# 定义蛇的块大小和速度
BLOCK_SIZE = 20
SNAKE_SPEED = 15

# 定义字体
font_style = pygame.font.SysFont("bahnschrift", 25)
score_font = pygame.font.SysFont("comicsansms", 35)

# 显示分数
def display_score(score):
    value = score_font.render("分数: " + str(score), True, YELLOW)
    screen.blit(value, [0, 0])

# 画蛇
def draw_snake(block_size, snake_list):
    for block in snake_list:
        pygame.draw.rect(screen, GREEN, [block[0], block[1], block_size, block_size])

# 显示消息
def display_message(msg, color):
    mesg = font_style.render(msg, True, color)
    screen.blit(mesg, [WIDTH / 6, HEIGHT / 3])

# 游戏循环
def game_loop():
    game_over = False
    game_close = False

    # 蛇的初始位置
    x = WIDTH / 2
    y = HEIGHT / 2

    # 蛇的移动方向
    x_change = 0
    y_change = 0

    # 蛇的身体
    snake_list = []
    snake_length = 1

    # 食物的位置
    food_x = round(random.randrange(0, WIDTH - BLOCK_SIZE) / BLOCK_SIZE) * BLOCK_SIZE
    food_y = round(random.randrange(0, HEIGHT - BLOCK_SIZE) / BLOCK_SIZE) * BLOCK_SIZE

    while not game_over:
        while game_close:
            screen.fill(BLUE)
            display_message("你输了!按 Q 退出游戏或 C 重新开始", RED)
            display_score(snake_length - 1)
            pygame.display.update()

            # 处理游戏结束后的输入
            for event in pygame.event.get():
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_q:
                        game_over = True
                        game_close = False
                    if event.key == pygame.K_c:
                        game_loop()

        # 处理事件
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                game_over = True
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT and x_change == 0:
                    x_change = -BLOCK_SIZE
                    y_change = 0
                elif event.key == pygame.K_RIGHT and x_change == 0:
                    x_change = BLOCK_SIZE
                    y_change = 0
                elif event.key == pygame.K_UP and y_change == 0:
                    y_change = -BLOCK_SIZE
                    x_change = 0
                elif event.key == pygame.K_DOWN and y_change == 0:
                    y_change = BLOCK_SIZE
                    x_change = 0

        # 检查是否撞墙
        if x >= WIDTH or x < 0 or y>= HEIGHT or y < 0: game_close='True' x y screen.fillblack pygame.draw.rectscreen red food_x food_y block_size block_size snake_head='[x,' y snake_list.appendsnake_head if lensnake_list> snake_length:
            del snake_list[0]

        # 检查是否撞到自己
        for block in snake_list[:-1]:
            if block == snake_head:
                game_close = True

        # 画蛇
        draw_snake(BLOCK_SIZE, snake_list)
        display_score(snake_length - 1)

        # 更新屏幕
        pygame.display.update()

        # 检查是否吃到食物
        if x == food_x and y == food_y:
            food_x = round(random.randrange(0, WIDTH - BLOCK_SIZE) / BLOCK_SIZE) * BLOCK_SIZE
            food_y = round(random.randrange(0, HEIGHT - BLOCK_SIZE) / BLOCK_SIZE) * BLOCK_SIZE
            snake_length += 1

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

    # 退出 Pygame
    pygame.quit()
    quit()

# 启动游戏
game_loop()

代码说明

  1. 游戏逻辑
  2. 蛇通过方向键控制移动。
  3. 吃到食物后,蛇的长度增加。
  4. 如果蛇撞到墙壁或自己,游戏结束。
  5. 核心功能
  6. pygame.event.get():处理用户输入。
  7. pygame.draw.rect():绘制蛇和食物。
  8. clock.tick():控制游戏帧率。
  9. 扩展建议
  10. 增加难度:随着分数提高,加快蛇的速度。
  11. 增加音效:使用 pygame.mixer 播放音效。
  12. 增加关卡:设计不同的地图或障碍物。

运行方法

  1. 安装 Pygame:pip install pygame
  2. 将代码保存为 snake_game.py。
  3. 运行代码:python snake_game.py

希望这个代码能帮助你理解贪吃蛇游戏的实现原理!

相关推荐

Visio 2007 软件安装教程(附软件下载地址)

软件简介:软件【下载地址】获取方式见文末。注:推荐使用,更贴合此安装方法!Visio2007是一款简便易用的流程图绘制软件,其能够方便地集成图表与数据,全面了解流程或系统,并分析和跟踪数据以解决问题...

Visio2016专业版本下载安装教程

一、下载方式[软件名称]:Visio2016[软件语言]:简体中文[软件大小]:605M[安装环境]:Win10/Win8/Win7[硬件要求]:CPU@2GHz内存@4G(或更高)[下载链接]:...

Visio 2021软件详细安装教程+官方中文正版安装包(永久使用)

1.打开下载的软件安装包,然后鼠标右击压缩包,选择【解压到当前文件夹】。2.等待压缩包解压完成。3.打开解压的【Visio2021】文件夹。4.双击打开【VisioPro2021Retail】镜像文...

Visio2021下载安装教程

一、下载方式软件名称:Visio2021语言:简体中文压缩包大小:4.28G安装环境:WIN11/WIN10硬件要求:CPU@2.0GHZ内存@4G(或更高)下载通道:百度网盘;下载链接:点击头像简介...

Visio 2010中文版软件下载及安装教程

下载地址见公众号内1.鼠标右键【Visio2010(64bit)】压缩包选择【解压到Visio2010(64bit)】2.打开解压后的文件夹,鼠标右键【Setup】,选择【以管理员身份运行】3.勾...

Visio 2021中文版软件下载及安装教程

下载地址见公众号内1.鼠标右键【Visio2021(64bit)】压缩包选择【解压到Visio2021(64bit)】2.打开解压后的文件夹,鼠标右键【Setup】,选择【以管理员身份运行】3.软...

Microsoft Visio 2019 安装教程(附安装包下载)

MicrosoftVisio2019软件介绍是一款便于IT和商务专业人员就复杂信息、系统和流程进行可视化处理、分析和交流的软件。MicrosoftVisio2019软件下载地址https://...

Visio 2019中文版软件下载及安装教程

下载地址见公众号内1.鼠标右键【Visio2019(64bit)】压缩包选择【解压到Visio2019(64bit)】2.打开解压后的文件夹,双击打开【office】文件夹3.鼠标右键【Setup...

游戏代码运行1:贪吃蛇游戏

以下是一个使用Pygame实现的简单贪吃蛇游戏代码。这个代码适合初学者学习,涵盖了游戏循环、事件处理、碰撞检测等核心概念。贪吃蛇游戏代码pythonimportpygameimporttim...

这是我做得最好看的PPT模板,绝对实用

哈喽,大家好呀~今天我做了一套模板,让你们可以看一下一整份PPT的效果。你们也可以自己模仿制作一遍,提高自己整体制作的水平。这套PPT使用的配色是蓝色。整份模板一共24页,分为4个部分,全部中文排版。...

CorelDRAW 增强插件,内置15+功能,大大提高效率哦

欲善其事必先利其器,好资源值得与你分享,关注我让你拥有一篮子好资源!本章软件获取:关注我→点击头像→私信:我要烤焦插件更多资源请点击头像,进主页查看哈今天给大家带来了一款cdr增强插件,支持X7.X8...

CDR提示系统尚未更改,90%的人不知道这解决方法!

CDR软件目前是更新到x8版本,启动界面如下估计很多小伙伴遇到安装问题不知道怎么解决,今天欢姐就来给大家写一下啦!安装CDRx8软件出现这个提示:安装未完成您的系统尚未修改。如要另寻时间完成安装,请...

CDR X6,X7安装出现1406英文对话框提示解决办法

CDRX6,X7安装出现1406英文对话框提示,(如下图)打开"运行"---输入regsvr32c:\windows\system32\vbscript.dll打开"运行"---输入regsvr3...

CorelDRAW 2020,走进人工智能时代

CorelDRAW的横空出世,填补了全色矢量插图和版面设计程序领域的空白,到CorelDRAW3推出一体化图形套件,再到CorelDRAW6推出世界首个用于PC机的32位图形软件色包、交互式工具。C...

谁说CDR垃圾,不服来战!CorelDRAW 2020 全新来袭!全新功能曝光

CorelDRAWGraphicsSuite2020全新来袭CorelDRAW作为图形设计软件的代表,以其杰出和革新的特性赢得了长期的声誉和用户的赞赏,是一套屡获殊荣的图像编辑软件。即便Core...