飞机大战是一种经典的 2D 射击游戏,通常初学者学习 Python 编程的一个很好的项目。通过这个课程帮助大家扎实 Python 基础知识和技能。 1. 效果展示 操作:W 前、S 后、A 左、D 右...
我们的开发环境: Windows 11 PyCharm 2021.1.3 Python 3.8.5 PyGame 2.5.1 PyInstaller 5.13.2 Or Py2App 0.28.6 1...
这一章节,我们主要学习 PyGame 相关的内容,为后面《飞机大战》程序的编写做铺垫。主要内容如下: PyGame 游戏窗口创建 PyGame 图像绘制操作 PyGame 事件处理机制 PyGame ...
在开始具体的飞机大战游戏功能开发之前,我们首先着手编写游戏的主体代码框架。随后的开发过程将围绕这个主体框架展开,只需填充和扩展框架中的空白部分。 需要注意的是,由于《飞机大战》项目相对简单,我们能够实...
飞机大战中,通过巧妙的地图滚动机制,玩家能够更加深刻地感受到飞机飞行的真实效果。这种不断变化的地图背景在游戏中犹如一幅壮丽的风景画,为飞机飞行提供了生动而多样化的舞台。 1. 地图滚动思路 首先: 准...
英雄飞机和敌人飞机都会发射子弹,我们先来实现子弹相关类。这里一共有两个类: Bullet 类:单个子弹类 BulletForHero 类:英雄飞机携带的弹夹类 1. Bullet 类 Bullet 类...
英雄飞机的移动是通过鼠标或者键盘事件,即: 鼠标拖动英雄飞机,自动发射子弹 通过键盘控制飞机移动,按键发射子弹 我们这里实现第二种方式。这里需要注意:英雄飞机的移动是由按键事件驱动。 1. HeroP...
现在我们的主场景中还没有敌机,我们接下来实现多个敌机从上向屏幕下方移动,并能够随机发射子弹。 1. EnemyPlane 类 该类的定义了单个敌机的实现,主要实现方法如下: set_used 设置飞机...
在游戏开发中,碰撞检测是一种用于确定游戏中物体是否相互接触或碰撞的技术。这些物体可以是游戏中的角色、道具、障碍物、子弹等。碰撞检测的主要目的是检测游戏中的物体之间是否发生碰撞,以便触发适当的游戏逻辑、...
当子弹和敌机碰撞,我们并不想仅将飞机和子弹消失,应该在其发生碰撞的位置播放一组爆炸动画,播放爆炸音效,游戏效果更为逼真一些。 1. Bomb 类 爆炸动画实现思路很简单,我们将一组图片按照一定的时间间...
1. Windows 打包步骤 首先,进入到项目根目录下然后,在项目根目录下执行命令:pyinstaller –noconsole –onefile –name p...
手写数字识别是计算机视觉领域的经典问题之一,具有广泛的应用。本课程将深入介绍使用支持向量机(SVM)技术来构建一个高效的手写数字识别系统。学生将学习如何使用SVM进行分类,以及如何提取和使用 HOG ...
我们的开发环境:Win11 + PyCharm 2021.1.3 + Python 3.8.5 使用下面的命令创建虚拟环境 digit-env: 在虚拟环境中,安装以下项目所需要的工具包:
在我们的《手写数字识别》项目中,需要提供一个用于手写数字的绘图板作为用户界面,便于获得用户手写的数字输入算法模型以便能够进行识别。这一章节,我们主要介绍关于绘图板开发过程中用到的相关技术。主要包括: ...
前面我们已经学习了 Tkinter Canvas 控件相关的技术,现在我们将会使用前面学习的内容来实现用于手写数字的绘画板。绘画板主要包括四个部分,分别是: 主窗口界面 顶部工具栏 中心绘画区 底部状...
《手写数字识别》项目基于支持向量机算法的,该算法的背后有着坚实的数学理论作为支撑,为算法的有效性和可靠性提供了坚实的基础。接下来,我们将会从以下第五个方面来讲解: 算法思想初探 算法训练内容 算法推理...
《手写数字识别器》中会应用支持向量机算法、以及相关的参数搜索方法。这两个在 Scikit-Learn 中都有实现。这一节,我们将会学习两个相关的 API 的使用。 数据介绍 算法使用 网格搜索 1. ...
这一节,我们主要给大家讲解图像相关的基础知识,以及操作方法。 1. 图像知识 图像可以被视为一系列像素的集合,每个像素分别对应 0 到 255 之间的整数,0 表示黑色,255 表示白色。图像可以根据...
经过前面的准备,我们将会进行初次的算法模型训练以及封装,并测试效果。从中去分析不足,然后在后续内容中针对不足进行优化。 1. 数据处理 首先,我们先对训练数据进行读取,并提取图像特征。需要说明一点,由...
在先前的训练阶段,我们发现算法模型在训练集上达到了1.0的准确率,然而,其在测试集上的表现却不尽如人意,这暗示着模型可能出现了过拟合现象。 我们的算法模型是直接依据每个数字图像的像素数据进行学习的。因...
经过第八章节的特征优化,我们的手写数字识别准确率有着明显的提升。但是仍然存在一个显而易见的问题,即:我们绘制的数字是对位置很敏感的。接下来,我们将会去探讨解决这一问题的方法。 1. 图像数据增强 数据...
1. Windows 打包步骤 首先,进入到项目根目录下然后,在项目根目录下执行命令:接着,拷贝 source、data、model 目录到 dist 目录下,保证和 exe 同级目录最后,可以分发给...
通过学习,希望大家能够理解以下几个问题: 1. Python GIL 影响 在讲解之前,我们需要先理解一点,Python 解释器本身是一个 C 程序,Python 代码是由这个 C 程序来解释执行。 ...
视频课程地址:https://space.bilibili.com/429380437 《垃圾邮件识别器》项目旨在开发一个能够支持邮件输入、并自动识别垃圾邮件的窗口应用程序。该项目主要包含以下方面的内...
我们的开发环境:Win11 + PyCharm 2021.1.3 + Python 3.8.5 1. 虚拟环境 https://mengbaoliang.cn/archives/tag/py-env ...
项目的第一步就是编写需要的界面,我们使用 Python 标准的 GUI 库 Tkinter 来实现。这一节就快速学习该库中将会用到的控件,为搭建图形界面做准备。 主窗口 主菜单 文本控件 其他控件 1...
通过前面学习的 Tkinter 知识,这一节我们将《垃圾邮件识别器》所需要的界面搭建起来,界面主要包括: 主窗口 顶部菜单 中心文本框 底部状态栏 1. 主窗口 创建 MainFrame.py 文件,...
这一节我们将通过学习贝叶斯公式、朴素贝叶斯、文本分类案例三部分来了解垃圾邮件识别的算法原理。 通过这三部分的学习,将对朴素贝叶斯算法的原理有更加深刻的理解,为实现后续功能提供算法理论支撑。
Scikit-Learn 是一个用于机器学习和数据分析的 Python 库,它提供了各种用于数据预处理、特征工程、模型选择、模型训练和模型评估的工具和算法。我们使用到的朴素贝叶斯算法实现,以及文本特征...
垃圾邮件分类是一种具有广泛应用场景的二分类问题,可以利用机器学习进行解决,市场上已经有很成熟的垃圾邮件分类软件或集成在 Outlook上 的垃圾邮件过滤插件。接下来,我们使用朴素贝叶斯算法训练一个《垃...