- 博客(1014)
- 资源 (13)
- 收藏
- 关注
原创 玩游戏学Python12-布尔型与条件语句
本文介绍了Python中的布尔型数据、比较运算符及条件语句,并通过pgzero实现汽车环绕屏幕行驶。利用if语句判断汽车是否超出屏幕右侧,若超出则将其位置重置至左侧,实现无缝环绕效果。代码结合了布尔逻辑与条件控制,展示了程序逻辑在游戏开发中的实际应用。
2026-10-14 10:23:35
367
原创 玩游戏学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
273
原创 玩游戏学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
191
原创 玩游戏学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
301
原创 玩游戏学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重定位的 键盘监听技术及防御
2017-03-27
Windows文件系统过滤驱动开发教程(第二版)
2017-04-23
基于VS2015套接字完成端口模型源代码
2018-07-04
ddkwizard_setup_v1.2.0a及ddkward.cmd
2016-10-23
基于对话框程序的注册码快捷键粘贴功能的实现
2017-04-23
VS2008编译驱动程序的配置方法
2016-10-23
Windows7下VS2008维护模式破解工具.rar
2019-05-31
filespy源代码
2016-09-25
DirectDraw中文手册
2017-01-31
Windows Graphics Programming Win32 Gdi And Directdraw.chm
2017-01-31
黑客调试技术解密pdf
2016-09-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅