自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1014)
  • 资源 (13)
  • 收藏
  • 关注

原创 玩游戏学Python12-布尔型与条件语句

本文介绍了Python中的布尔型数据、比较运算符及条件语句,并通过pgzero实现汽车环绕屏幕行驶。利用if语句判断汽车是否超出屏幕右侧,若超出则将其位置重置至左侧,实现无缝环绕效果。代码结合了布尔逻辑与条件控制,展示了程序逻辑在游戏开发中的实际应用。

2026-10-14 10:23:35 368

原创 玩游戏学Python11-算术运算符应用3

赋值运算符“=”用于将值赋予变量,如将2.5赋给car_speed。复合赋值运算符(如+=、-=、*=、/=)结合算术与赋值操作,先计算再赋值,提升代码简洁性。例如a+=1等价于a=a+1。图10和图11展示了其应用,可简化car.right += car_speed的写法。完整代码实现小车移动,使用pgzero库,通过update()函数持续更新位置,使小车在屏幕上运行。

2026-10-14 10:18:23 236

原创 玩游戏学Python10-算术运算符应用2

在《玩游戏学Python》中,通过pgzero库的update()函数每秒调用60次,可实现小车动画。只需在update()中修改汽车Actor的right属性(如car.right += car_speed),即可让小车移动。使用浮点型变量定义速度(如car_speed = 1.5),可精确控制移动速率,使小车平滑加速。相比整数速度,浮点型提升移动流畅度与灵活性。

2026-10-13 10:44:12 274

原创 玩游戏学Python9-算术运算符应用1

在pgzero中,使用screen.draw.text()函数可在draw()函数中显示文本信息。通过设置位置、字体大小(fontsize)和颜色(color)参数,可灵活控制显示效果。将字体属性设为变量,可方便地动态调整显示内容,提升代码可维护性。

2026-10-13 10:41:05 172

原创 玩游戏学Python8-算术运算符2

本文介绍在pgzero中使用算术运算符优化游戏代码。通过HEIGHT/2或HEIGHT//2动态设置汽车纵坐标,实现窗口自适应;利用+和*操作符组合字符串,灵活设置标题(如TITLE='我的第一个pgzero游戏'*2)和图标(如ICON='car'+'.png'),提升代码可维护性与灵活性。完整代码展示了这些运算符的实际应用。

2026-10-12 18:58:30 292

原创 玩游戏学Python7-算术运算符1

Python算术运算符包括+、-、*、/、//、%。整型可使用全部运算符,如+、-、用于数值计算,/返回浮点数,//取整除商,%求余数。字符串仅支持+(连接)和(重复),如"abc"+"def"结果为"abcdef","a"*3得"aaa"。其他算术运算符不可用于字符串与整型混合运算。

2026-10-12 18:54:53 69

原创 玩游戏学Python6-演员Actor

在PyZer0中,Actor用于表示游戏角色,封装了图像显示、位置控制等功能。通过将car.png放入images文件夹,并使用Actor('car', (150, 300))创建汽车对象,可在指定坐标显示车辆。pgzero坐标系原点在左上角,x轴向右,y轴向下。在draw()函数中调用car.draw()即可绘制汽车,完整代码实现了一个简单的游戏界面,汽车位于(150, 300)处。

2026-10-10 10:25:34 449

原创 玩游戏学Python5-函数

本文介绍了函数的基本概念与定义格式,强调函数可重复执行任务以提高代码效率。重点讲解了pgzero库中draw()函数用于绘制游戏窗口并填充背景色,以及update()函数用于循环更新游戏状态。通过实例展示了如何定义和调用函数,并说明draw()和update()由pgzero自动调用,分别负责绘图与状态更新,每秒约60次调用,实现游戏动态效果。

2026-10-10 10:22:57 192

原创 玩游戏学Python4-字符串

本文介绍了Python中字符串的概念及其在pgzero游戏编程中的应用。字符串是用引号括起的字符序列,可通过变量定义。通过定义大写变量TITLE和ICON,可修改游戏窗口标题和图标。标题栏文字由TITLE变量指定,图标需为32×32或64×64的PNG、JPG、GIF格式图片,并与代码同目录。注意变量名必须大写,图片大小需符合要求,否则无法正常显示。

2026-10-09 11:58:28 471

原创 玩游戏学Python3-整型

Python基本数据类型包括整型、浮点型、布尔型和字符串型。整型(int)用于表示整数,可通过变量定义并赋值,如a=1。变量是标识符,绑定对象后可访问其值。在pyzero中,可用整型变量WIDTH和HEIGHT控制窗口大小,如WIDTH=640表示窗口宽640像素。变量可多次赋值,最终值以最后一次为准;且变量名区分大小写,WIDTH与width为不同变量。像素是屏幕最小显示单位,游戏画面由像素排列构成。

2026-10-09 11:56:11 295

原创 玩游戏学Python2-IDLE与pgzero入门

IDLE是Python自带的轻量级IDE,支持交互模式与文件模式。交互模式可即时执行代码,但关闭后内容丢失;文件模式需通过“File→New File”创建,代码可保存并运行(按F5),便于后续调用。pgzero是简化2D游戏开发的框架,核心为pgzrun库,通过import pgzrun和pgzrun.go()启动游戏,实现“零样板代码”的快速开发。

2026-10-08 15:33:40 303

原创 玩游戏学Python1-Python和pgzero库的安装

本文介绍了Python 3.10.6的安装与启动流程,包括勾选“Add Python to PATH”并使用Install Now完成安装,随后通过IDLE打开Python环境。接着详细说明了pgzero库的安装方法:通过cmd命令行使用pip install pgzero -i https://pypi.tuna.tsinghua.edu.cn/simple进行安装,并可通过pip list验证安装结果,适用于初学者快速开展2D游戏开发。

2026-10-08 15:29:47 155

原创 GESP等级考试C++5级22-数组模拟高精度运算2

本文通过数组模拟实现大整数的高精度加法运算。将大整数逆序存入vector<int>,逐位相加并处理进位,使用add()函数完成两数相加。最后去除结果前导零,并逆序输出。代码简洁高效,可处理任意大小整数的加法运算。

2026-10-07 10:23:04 20

原创 GESP等级考试C++5级21-数组模拟高精度运算1

本文介绍C++中高精度大整数运算的实现方法。由于内置类型无法表示超大整数,采用vector逆序存储(低位在前),模拟竖式计算,便于进位处理与for循环操作。通过字符串输入并逆序转存,去除前导零后逆序输出,实现大整数的加减乘除基础运算。

2026-10-07 10:20:53 144

原创 GESP等级考试C++5级20-素数判断法3

线性筛通过维护素数表,确保每个合数仅被其最小质因子标记一次,避免冗余操作。核心在于:若i为素数则加入表;遍历素数表,用i乘各素数标记合数;当i能被当前素数整除时立即break,保证唯一标记。代码中使用long long防溢出,实现严格O(n)复杂度。

2026-10-04 10:54:37 16

原创 GESP等级考试C++5级19-素数判断法2

本文介绍素数筛算法,针对朴素判断法在大范围求素数时效率低的问题,提出埃氏筛(埃拉托斯特尼筛法)。其核心思想是从小到大遍历,每遇素数即标记其所有倍数为合数,剩余未被标记者即为素数。该算法时间复杂度为O(n log log n),接近线性。代码实现中使用布尔数组标记合数,通过循环筛选并收集素数,高效获取1~n内所有素数。

2026-10-04 10:51:49 118

原创 GESP等级考试C++5级18-素数判断法1

素数判断常用朴素算法与优化版本。朴素算法遍历小于n的所有数,判断是否整除,时间复杂度为O(n);优化后只需试到√n,复杂度降为O(√n),效率显著提升。素数定义为大于1且仅能被1和自身整除的自然数,反之为合数。

2026-09-28 10:20:10 20

原创 GESP等级考试C++5级17-辗转相除法

辗转相除法(欧几里得算法)用于求两正整数最大公约数(gcd),基于gcd(a,b) = gcd(b, a mod b),反复迭代直至余数为0,此时被除数即为gcd。可推广至多个数的gcd求解,且gcd与最小公倍数(lcm)满足a×b = gcd×lcm,求lcm时应先除后乘以防溢出。注意处理负数时需取绝对值,避免死循环。

2026-09-28 10:18:16 136

原创 GESP等级考试C++5级15-快慢指针1

快慢指针(龟兔赛跑算法)是单链表中经典技巧,用于高效查找中心结点。慢指针每次前移1步,快指针每次前移2步,当快指针到达末尾时,慢指针恰在链表中间。若结点数为奇数,返回正中心;偶数时返回靠右的中心结点。代码实现简洁,时间复杂度O(n),空间复杂度O(1),适用于链表中位查找等场景。

2026-09-25 16:44:52 309

原创 GESP等级考试C++5级16-快慢指针2

本文介绍使用快慢指针法高效查找链表倒数第i个结点的原理与实现。核心思想:快指针先走i步,随后快慢指针同步前进,当快指针到达末尾时,慢指针即指向倒数第i个结点。代码中通过边界判断确保链表长度足够,避免越界。完整实现包含链表创建与查询,运行结果正确输出目标节点值,时间复杂度为O(n),空间复杂度为O(1)。

2026-09-25 16:44:11 38

原创 GESP等级考试C++5级14-循环链表2

双向循环链表在双向链表基础上实现头尾相连:尾结点的next指向头结点,头结点的pre指向尾结点,形成循环结构。创建时需正确初始化头结点的next和pre为自身,并在插入新结点时更新尾结点与头结点的指针。遍历支持正向(从head→next)和反向(从head→pre)两种方式,反向遍历更简便,可直接通过head的pre获取尾结点。代码实现简洁高效,适用于需要双向循环访问的场景。

2026-09-24 10:30:38 11

原创 GESP等级考试C++5级13-循环链表1

循环链表是将单向链表尾结点与头结点相连形成的环形结构,实现从任意结点出发均可遍历所有结点。其核心在于尾结点的next指向头结点,遍历时以是否回到头结点作为终止条件。代码实现中,空链表时头结点next指向自身,插入新结点后尾结点的next指向头结点。遍历通过判断当前结点是否为头结点来结束,适用于约瑟夫环、轮询调度等环形场景,使代码更简洁直观。

2026-09-24 10:27:57 314

原创 GESP等级考试C++5级12-双向链表的插入及删除

本文介绍了双向链表中删除指定位置结点的原理与实现。通过修改前后结点的指针域,将目标结点从链表中移除,并释放其内存。代码实现包括deleteNode()函数,用于定位并删除第i个结点,确保前驱与后继指针正确更新。运行结果显示成功删除第3个结点,正向遍历输出剩余元素。完整代码涵盖创建、删除与遍历操作,体现了双向链表的灵活管理能力。

2026-09-23 09:29:42 24

原创 GESP等级考试C++5级11-双向链表的插入及删除

本文介绍了在双向链表指定位置插入新结点的原理与实现。通过查找前驱结点p,创建新结点s并更新各结点指针(s→next、s→pre、p→next、p→next→pre),完成插入。代码实现了insert函数,并在main函数中于第3位插入数据100,经正向遍历输出结果验证正确性。完整代码包含双向链表的创建、插入及遍历功能,体现了双向链表插入操作的双向指针维护特性。

2026-09-23 09:27:18 148

原创 GESP等级考试C++5级10-双向链表的访问

双向链表通过next和pre指针实现正向与反向访问。正向遍历从头结点出发,利用next域依次访问;反向遍历则先找到尾结点,再通过pre域逆序输出。代码中分别定义forwardShow和backwardShow函数实现两种遍历方式,完整展示了双向链表的创建与双向遍历过程。

2026-09-17 09:19:58 15

原创 GESP等级考试C++5级9-双向链表的创建

双向链表结点包含数据域data、指向后继的next指针和指向前驱的pre指针。创建过程与单向链表类似,通过输入数据直至-1结束。关键区别在于需设置pre指针:头结点pre置为NULL,新结点p的pre指向当前尾结点r,r的next指向p,实现双向连接。完整代码展示了动态创建与链接过程。

2026-09-17 09:16:22 132

原创 GESP等级考试C++5级8-获取链表的结点数量

本文实现链表结点数量的获取,通过自定义len()函数遍历链表,统计结点总数。代码中定义了链表结构体Node,利用头指针head和尾指针r动态创建链表,输入数据直至遇到-1停止。len()函数从头结点开始逐个访问下一结点,计数直到末尾,返回结点数量。运行结果显示链表长度,完整代码涵盖链表创建与长度计算,逻辑清晰,便于理解与应用。

2026-09-15 09:51:03 8

原创 GESP等级考试C++5级7-删除结点

本文介绍了链表中删除指定位置结点的原理与实现。通过找到第i-1个结点,将其指针指向第i+1个结点,实现删除第i个结点。代码中定义了delete_node()函数,利用指针操作完成结点删除,并在main()函数中调用该函数删除第3个结点,最后通过show()函数输出删除后的链表。运行结果验证了删除操作的正确性。

2026-09-15 09:48:40 111

原创 GESP等级考试C++5级6-查找与修改结点2

根据内容:主要讲用set函数查找并修改链表指定数据结点,给出代码和效果。摘要应简洁。</think>本文介绍了通过set()函数在链表中查找指定数据域x的结点并修改为y的方法,给出了代码实现及运行效果,并附完整示例程序。

2026-09-09 08:54:44 15

原创 GESP等级考试C++5级5-查找与修改结点1

文本主要讲解查找节点包括两种,重点介绍查找指定位置节点的set()函数实现,包括代码、运行效果和完整代码。需要简洁概括。注意字数限制。</think>本文介绍了查找节点的两种方式,重点讲解查找指定位置节点的实现:通过set()函数遍历链表,找到第i个节点并修改其数据域,与插入结点方法类似但循环条件不同。文章包含代码示例、运行效果及完整代码,展示了链表中指定节点数据修改的完整流程。

2026-09-09 08:52:33 136

原创 GESP等级考试C++5级4-插入结点2

<think>我们根据要求生成≤150字的摘要。内容是关于GESP C++5级单向链表插入结点的实现。摘要要简洁概括。</think>本文介绍了在GESP C++5级单向链表课程中,将显示链表结点的功能封装为函数,并在main中调用插入函数,在第3个位置插入数据100,最终链表由1,2,3,4,5变为1,2,100,3,4,5,并给出了完整代码实现。

2026-09-08 10:10:08 17

原创 GESP等级考试C++5级3-插入结点1

<think>我们根据用户要求,基于给定内容生成≤150字的摘要。摘要要涵盖插入结点的原理和实现。注意字数限制。核心要点:在已创建链表中插入新结点,需先创建新结点,找到第i-1个结点,将新结点地址域指向原第i个结点,再将第i-1个结点地址域指向新结点。通过insert函数实现,参数为头指针、位置i、数据x,用while循环查找第i-1个结点,然后创建新结点并修改指针。现在组织语言,控制字数。</think>在已创建链表中插入新结点,需先创建新结点,再找到第i-1个结点,将新结点地址域

2026-09-08 10:05:09 146

原创 GESP等级考试C++5级2-单向量表的创建与访问2

<think>我们根据内容生成摘要,不超过150字。内容讲单向链表访问和完整代码。摘要需概括关键点:创建链表、读取所有结点数据、头结点无数据、循环结束条件、最后结点输出。语言简洁。</think>单向链表创建后,通过头结点的下一个结点开始访问。利用while循环遍历各结点,以指针域为空作为结束标志,循环结束后需单独输出最后一个结点的数据。完整代码包含结点结构定义、创建链表及按序输出所有数据。

2026-09-04 09:18:00 25

原创 GESP等级考试C++5级1-单向量表的创建与访问1

<think>我们根据要求生成≤150字的摘要。内容是关于线性表、顺序存储、链式存储、链表结点、单向链表C++表示和创建。需要简洁概括。</think>摘要:线性表是有限序列,有顺序和链式两种存储。顺序存储可随机访问但插入删除需移动元素;链表动态分配,克服此缺点。链表结点含数据域和指针域,C++中用结构体实现。创建单向链表需定义头尾指针,循环创建结点并链接。

2026-09-04 09:15:15 139

原创 python海龟绘图之绘图窗口操作

本文介绍了Python海龟绘图中对绘图窗口的操作方法:1)使用bye()直接关闭窗口或exitonclick()点击关闭;2)通过save()函数将绘图保存为PS格式文件,可设置覆盖选项;3)利用setup()函数自定义窗口大小(支持像素值或屏幕比例)和位置(支持绝对坐标或居中显示)。这些功能为海龟绘图提供了窗口管理、图像保存和界面定制等实用操作。

2026-05-20 09:54:58 321

原创 python海龟绘图之对话框

文章介绍了海龟绘图模块中创建输入对话框的两种方法:textinput()用于创建文本输入对话框,接收字符串输入;numinput()用于创建数字输入对话框,可设置默认值、最小值和最大值范围验证。两个函数都返回用户输入内容(取消则返回None),其中数字输入返回浮点型数值。这些对话框功能为图形界面交互提供了简单实现方式。

2026-05-20 09:50:07 283

原创 python海龟绘图之定时器

本文介绍了使用Python海龟绘图中的ontimer()函数设置定时器的方法。主要内容包括:1)如何设置单次定时器,调用无参数函数执行指定动作;2)通过嵌套设置定时器实现连续动作;3)使用控制变量管理定时器的启动和停止,并通过鼠标点击事件进行交互控制。文章强调定时器函数必须无参数,且需要调用mainloop()保持程序运行。该方法可实现定时任务的灵活控制。

2026-05-19 07:23:32 191

原创 python海龟绘图之点击屏幕事件处理

本文介绍了Python海龟绘图中处理鼠标点击事件的两种方法:onclick()处理点击海龟图标事件,onscreenclick()处理点击绘图窗口任意位置事件。重点讲解了使用onscreenclick()实现海龟跟随鼠标移动的方法:1)定义响应函数move(x,y)接收鼠标坐标;2)通过onscreenclick(move,1)将左键点击事件与响应函数绑定;3)调用mainloop()保持程序运行。该方法通过简单的三步即可实现鼠标控制海龟位置的功能。

2026-05-19 07:21:03 314

原创 python海龟绘图之键盘事件处理2-2

本文介绍了Python海龟绘图中的键盘事件处理方法。通过onkeypress()函数将按键与处理函数关联,实现按键按下时的持续响应(如方向键控制移动),使用onkeyrelease()处理按键释放事件。文章详细说明了函数参数设置、按键命名规则,并给出了完整示例代码,包括方向控制函数定义、事件绑定以及mainloop()保持程序运行的关键步骤。最后总结了处理键盘事件的基本流程:获取焦点、定义处理函数、绑定按键、保持程序运行。

2026-05-18 11:28:17 349

原创 python海龟绘图之键盘事件处理2-1

本文介绍了Python海龟绘图处理键盘事件的方法。首先需要通过turtle.listen()函数使绘图窗口获取焦点才能捕获键盘输入。然后定义了四个方向键处理函数(left/right/up/down),分别设置海龟朝向并移动10个单位。与鼠标事件不同,键盘事件需要手动设置窗口焦点才能响应。通过这种方法可以实现用方向键控制海龟移动的功能。

2026-05-18 11:26:32 333

基于IOAPIC重定位的 键盘监听技术及防御

键盘监听技术会引起个人重要信息的泄露。通过对IOAPIC重定位技术的研究,实现了针对单核系统和多核系统的键盘监听和记录。在Windows Driver Kits7.0.1中编译生成的驱动,能够记录键盘信息,引起重要信息的泄露。通过提出的防御键盘监听的方法能够有效地预防键盘监听。

2017-03-27

Windows文件系统过滤驱动开发教程(第二版)

大约两年以前我在驱动开发网上发表了一组描述如何开发 Windows 文件系统过滤驱动的文章。非常庆幸这些文章能 给大家带来帮助。 原本的文章中我使用了自己编写的代码。我不打算在这里论述代码风格的优劣并发起一场辩论,无可怀疑的是,读者们 大多喜欢看到类似微软范例的代码。为此我把文章中的代码换成微软标准的文件过滤驱动范例 sfilter 的代码。赠于喜欢此 书的读者和驱动开发的后来者们。 网友们帮我整理的原版已经非常流行。为了区别起见,称为第二版。

2017-04-23

基于VS2015套接字完成端口模型源代码

《VS2015实现套接字完成端口模型》文章中提到的套接字完成端口模型源代码。文章地址为https://blog.csdn.net/hou09tian/article/details/80911809

2018-07-04

基于Java语言的安卓系统编程学习第一部分

基于Java语言的安卓系统程序编程:包括Eclipse环境搭建、项目结构解析、按键、菜单、控件UI、图像按键等。本内容为第一部分。

2017-04-23

ddkwizard_setup_v1.2.0a及ddkward.cmd

VS2008产生及编译驱动的工具。包括ddkwizard_setup_v1.2.0a.exe,ddkbuild_bat和ddkbuild_cmd。

2016-10-23

基于对话框程序的注册码快捷键粘贴功能的实现

程序的注册码的格式一般为“XXXX-XXXX-XXXX-XXXX”,在使用时将注册码输入到多个编辑框控件中,每个编辑框中输入一段。手动输入注册码非常麻烦,而采用快捷键进行粘贴时,只能逐个编辑框进行粘贴,而不能一次性粘贴完毕。 以上功能可以通过编程实现。

2017-04-23

贪吃蛇源代码

Windows控制台的贪吃蛇源代码,基于VS2010,可实现速度控制。

2019-01-16

VS2008编译驱动程序的配置方法

编译驱动程序的常用方法有两种,一种是通过WDK/DDK的COMMAND环境进行编译,另外一种是通过Visual Studio系列软件实现界面编译。通过Visual Studio编译驱动程序需要对其进行相关配置,本文以VS2008和WDK7600为例,讲解了实现编译驱动程序的配置方法。

2016-10-23

Windows7下VS2008维护模式破解工具.rar

VS2008试用版的估计期X天后结束,需要重新输入注册码时。Windows7会将VS2008维护模式中输入注册码的控件隐藏,使用本工具,可以在Windows7下显示VS2008维护模式中的输入注册码的控件,完成VS2008的重新注册!

2019-05-31

filespy源代码

能通过Netware Client32连接到网络,查看所有的用户在使用哪些文件,还可以查看某个用户对文件的权限,以及用户登录的时间等,当网络上要更新某个应用程序时,这个软件可以用来要求正在使用程序的用户退出.

2016-09-25

DirectDraw中文手册

DirectX 编程是现在图形编程特别是游戏编程的热点.而广大的 DirectX 编程爱好者被其帮助文档中的英文所苦,于是民间有不少的爱好者开始自己翻译其手册为中文,然后放在网上让大家共享.然而,由于缺乏组织,很多人都在做着重复的工作,结果浪费了很多的时间和精力.如果把这些自发的力量组织起来,无疑是件很有意义的事.而实现跨地域的组织工作,正是 Internet 的特长.因此我们决定在国际互联网上建立一个站点来专门进行 DirectX 手册的翻译组织工作,然后把翻译过的作品放在我们的主页上让每一个需要的人都可以得到.

2017-01-31

Windows Graphics Programming Win32 Gdi And Directdraw.chm

This book is about Windows graphics programming using Win32 GDI API, with an introduction to DirectDraw, and an even more brief introduction to Direct3D Immediate Mode. It covers common features implemented on all Win32 platforms, pure 32-bit features implemented on Windows NT/2000 only, and the most recent additions to GDI for Windows 2000 and Windows 98. For example, alpha blending, transparent bit blting, gradient fill, right-to-left reading order, layered window, and sending JPEG/PNG images to printer are fully covered.

2017-01-31

黑客调试技术解密pdf

本书是帮助应用程序员和系统程序员理解调试过程的指南,揭示了各种调试器的实用使用技巧,说明了如何操作调试器以及如何客服障碍和修复调试器,介绍了黑客利用调试器和反汇编器来寻找程序弱点和实施攻击的方法

2016-09-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除