Python教程:制作贪吃蛇游戏存以exe文件运行

server/2024/10/23 16:00:15/

Python,作为一种解释型、面向对象、动态数据类型的高级程序设计语言,其简洁易懂的语法和丰富的库使得它成为开发小游戏的理想选择。

下面,我们就来一步步教大家如何用Python制作一个贪食蛇小游戏,并将其打包成exe程序,让你即使没有Python环境也能轻松运行。

一、安装必要的库

首先,我们需要安装pygame库,它是一个用于编写视频游戏的Python模块。你可以在Anaconda Terminal中通过pip来安装:

pip install pygame

二、初始化游戏窗口

首先我们要生成贪食蛇游戏的初始窗口:

import pygame
import sys
import random
import time# 初始化pygame
pygame.init()# 设置游戏窗口大小
win_width, win_height = 640, 480  
window = pygame.display.set_mode((win_width, win_height))
pygame.display.set_caption('贪食蛇小游戏')

窗口默认尺寸是640×480,你可以条件这两个参数来调整窗口大小。


三、定义蛇和食物

有了初始窗口,接下来我们需要生成蛇的主体(一个白色的长方形),以及食物(绿色方块):

# 定义颜色
WHITE = (255, 255, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)# 蛇的初始位置和大小
snake_pos = [100, 50]
snake_body = [[100, 50], [90, 50], [80, 50]]
snake_speed = 15  # 初始速度,数值越小速度越快
direction = 'RIGHT'  # 初始方向# 食物的初始位置
food_pos = [random.randrange(1, win_width // 10) * 10, random.randrange(1, win_height // 10) * 10]
food_spawn = True

上面的代码涉及一些重要参数:

蛇的初始位置是通过二维坐标定义的,用户可以根据需求自行修改,但不可超过初始窗口的边界;

蛇的移动速度默认是15,如果觉得速度太慢可以改为更大的数值;

食物的初始位置可以任意指定。在后续的循环过程中,如果蛇吃掉了当前的食物,系统会自动随机生成新的食物。


四、游戏主循环 

接下来,我们需要构造游戏的主循环语句,主要完成下列任务:

根据用户的操作来更新蛇的位置;

判断蛇是否吃掉了食物;

判断是否需要更新蛇的长度并生成新的食物。

clock = pygame.time.Clock()running = True
while running:for event in pygame.event.get():if event.type == pygame.QUIT:running = Falseif event.type == pygame.KEYDOWN:if event.key == pygame.K_UP:if direction != 'DOWN':direction = 'UP'if event.key == pygame.K_DOWN:if direction != 'UP':direction = 'DOWN'if event.key == pygame.K_LEFT:if direction != 'RIGHT':direction = 'LEFT'if event.key == pygame.K_RIGHT:if direction != 'LEFT':direction = 'RIGHT'if event.key == pygame.K_ESCAPE:running = False# 更新蛇的位置head = list(snake_body[0])if direction == 'UP':head[1] -= 10if direction == 'DOWN':head[1] += 10if direction == 'LEFT':head[0] -= 10if direction == 'RIGHT':head[0] += 10snake_body.insert(0, list(head))# 检查是否吃到食物# ......此处省略部分代码# 绘制食物和蛇pygame.draw.rect(window, GREEN, (food_pos[0], food_pos[1], 10, 10))for pos in snake_body:pygame.draw.rect(window, WHITE, (pos[0], pos[1], 10, 10))# 检查游戏结束条件,确保只有碰到边界或自身时才结束游戏# ......此处省略部分代码
pygame.quit()
sys.exit()


五、打包成exe程序

最后,我们只需要把上述的代码打包成exe程序即可。

为了将Python脚本打包成exe程序,你可以使用pyinstaller库。首先,你需要在命令行中(例如Anaconda Terminal)安装它:

pip install pyinstaller

然后,使用以下命令将你的Python脚本(假设脚本名为snake_game.py)打包成exe程序。

例如我们上面的代码脚本是保存在D盘里,那么在打包的时候需要写出该脚本的绝对路径:

pyinstaller --onefile D:\snake.py --distpath D:\

打包完成后,你会在D盘下面找到生成的exe文件。

图片

双击打开exe文件即可运行程序,方向键控制方向,Esc键退出游戏

图片


http://www.ppmy.cn/server/134203.html

相关文章

探讨人工智能领域所需学习的高等数学知识及其应用场景,涵盖了微积分、线性代数、概率论等多个数学分支。

大家好,我是微学AI,今天给大家介绍一下本文主要探讨了人工智能领域所需学习的高等数学知识及其应用场景。文章详细列出了人工智能中涉及的数学公式,涵盖了微积分、线性代数、概率论等多个数学分支。同时,本文深入介绍了这些数学知…

基于单片机的多功能电子闹钟设计

本设计采用STC89C51单片机作为主控核心,DS1302时钟芯片实现时钟以及闹钟功能,DHT11温湿度传感器实现外界温湿度的采集,LCD1602液晶显示屏实现数据的显示,TTS语音模块实现语音播报功能。其中,主控模块读取DS1302时间信号…

【C】数组(array)

数组(array) 数组的概念 数组是一组相同类型元素的集合 数组中存放的是1个或者多个数据,但是数组元素个数不能为0数组中存放的多个数据,类型是相同的 数组分为一维数组和多维数组,多维数组一般比较多见的是二维数组 一维数组的创建和初始…

Ping32运维中心工具:提升企业IT管理效率的利器

在当今数字化时代,信息技术的高效管理对企业的运营至关重要。Ping32运维中心工具应运而生,为企业提供了一整套便捷的运维解决方案,帮助IT团队高效管理网络与设备,确保业务连续性。 一体化监控平台 Ping32运维中心工具提供了一体化…

有关机器学习的数据处理,模型训练,模型保存,模型调用和结果预测 整体流程

以下是一个详细的机器学习流程介绍,包括模型训练、保存、使用和数据预测。这些步骤可以帮助你理解从数据准备到模型应用的整个过程。 1. 数据准备 数据准备是机器学习的第一步。你需要收集、清洗和处理数据以供模型使用。 收集数据:获取你需要的数据。…

等保测评:安全计算环境的详细讲解

安全计算环境是信息安全领域中的一个重要概念,旨在确保在计算过程中数据的机密性、完整性和可用性。随着信息技术的迅猛发展和网络攻击的日益频繁,构建安全计算环境显得尤为重要。本文将详细探讨安全计算环境的主要组成部分、特性及其在信息安全中的作用…

CST软件超表面--- 偏振片- 线圆极化转换,Floquet端口,S参数算轴比AR

这期我们看一个超表面极化分析,用到Floquet端口模数,S参数读出极化和轴比,还有平面波散射截面等技巧。 使用模板,频率0-25GHz,电场监视器8.06GHz: 画一片PEC: 画第二片PEC,insert到第一片里面&…

15分钟学Go 第7天:控制结构 - 条件语句

第7天:控制结构 - 条件语句 在Go语言中,控制结构是程序逻辑的重要组成部分。通过条件语句,我们可以根据不同的条件采取不同的行动。今天我们将详细探讨Go语言中的两种主要条件结构:if语句和switch语句。理解这些控制结构对于编写…