自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(94)
  • 资源 (30)
  • 收藏
  • 关注

原创 c++控制台做的基于粒子系统的礼花组字:春节快乐

圣手书生,恭祝大家,春节快乐代码并不复杂,这里分别讲解一下。粒子系统的设计:struct Cell{ int x, y, tx, ty, len; int s, e; int color; void show(int t){ if (t>=s and t<=e){ int x1= x+ (tx-x)*(t-s)/(e-s); int y1= y+ (ty-y)*(t-s)/(e-s); if (x1>=0 && y1>0..

2022-01-26 17:19:03 2076

原创 一步一步实现一个完整的围棋游戏

一、画棋盘可以理解为简单的字符画技巧:第一行、中间与最后一行不同;对于每一行,第一列,中间与最后一列不同。画星位是有一点技巧的,重点理解这个公式的含义:((i-4)%6==0 && (j-4)%6==0)#include<iostream>using namespace std;int main(){ cout<<"●○"<< endl; // 第1行 cout << "┏ "; for (int i=2..

2022-01-03 19:39:02 4966

原创 怎样用python开发一个c++的本地OJ练习系统

由于在做c++信奥教学,出于某种考虑,可能会用到本地的OJ练习系统。略作修改也可以成为测试系统。用Python开发是比较简单的,不像网络的OJ平台,本地OJ不用考虑太复杂的用户情况,只需处理好最基本的几个问题即可,下面简单介绍一下。一、源代码编译源代码编译,是通过直接调用MinGW64实现的。def makeExe(cpp): command= r'MinGW64\bin\g++.exe %s -o %s -m32' # command= r'gcc\bin\g++....

2021-12-24 10:55:03 1792

原创 一步步实现一个完整的万年历

一、2015年的NOIP普及组初赛有一道代码补全的题目,很有意思,功能是实现一个当年任意月的月历显示。为了让代码更有趣,我这里把它改为针对2022年的任意月的月历的显示。代码如下:// 2022年,任一月份的月历 #include<iostream>using namespace std;const int dayNum[]={-1,31,28,31,30,31,30,31,31,30,31,30,31};int main(){ int m; cin >>

2021-12-11 13:53:29 995

原创 详细动图展示欧拉筛法的原理

欧拉筛法是比埃氏筛法更高效的一种素数筛法,确保每个合数只被筛掉一次,算法复杂度达到O(n),被称为线性筛。为了更好地理解它的原理,我制作了一个动态展示,配合源代码一起阅读,相信您能很快理解欧拉筛法的妙处。#include<iostream>#define MAX 100000001using namespace std;bool a[MAX];int prime[MAX];int main(){ int n, p=0; cin >> n; for (i...

2021-12-04 20:22:11 3070 2

原创 dev-c++开发的全鼠标操作控制台战棋

当然,作为游戏本身来说,这个界面实在是太粗糙了。但界面的极简同时也可以说是控制台的一个好处。用它来研究算法就比较方便了。这里尝试实现了一个标准的战棋游戏:双方轮流行动,不同兵种有不同的移动力、攻击范围、攻击力、防御力。并且在双方兵力完全相同的情况下测试计算机算法的能力。其中最后一版使用alpha-beta剪枝后,战斗能力明显提高,人类智能想随便取胜,也不是一个很容易的事情了。源代码放在了CSDN下载资源中(dev-c++开发的全鼠标操作控制台战棋(完整源码)-C++文档类资源-CSDN下载d..

2021-11-16 09:11:29 3491

原创 Dijkstra算法(迪杰斯特拉算法)的地图演示

Dijkstra算法常见用于地图寻路,但是具体怎样使用,还是有可讨论的内容的。一、建立地图(二维数组)并在地图上设置可通行与不可通行(白色表示)的点。然后选择一个位置放置英雄(英字),选择一个位置作为目标(空方框)。二、从地图生成逻辑的图。1、所有的位置统一编号,采用的方法是:行坐标*宽度+列坐标。2、每个位置只与周围八个点相连,即彼此之间有一条边。其中与上下左右的四个点之间的边的权(距离)是1,与斜方向的四个点的边的权(距离)是1.4。3、简单处理起见,暂时用邻接矩阵法保存图...

2021-10-25 15:15:47 1003

原创 编程整理术

整理术大行其道,但现有的整理术大多是在讲有形物的整理,无形的电子资料怎样整理呢?那当然就离不开编程了。可即使是会编程,整理资料也存在很多弊端。我们平时可能收集了很多资料,或者自己也整理了一些资料,但这些资料的内容特点不一样,导致了他们的格式往往也是不统一的。为了对这些资料进行处理,就得写很多不同的程序,这些程序的整理本身就成为一个问题,日后想使用就比较麻烦。这里,结合个人的实践体验,推荐给大家一种有趣的编程架构,它的目标是用一个接口统一所有的文件打开格式,所有的文件导出格式。为了实现这个目标,我

2021-10-04 09:48:34 223

原创 《谁养鱼》问题的优雅编程解法

虽然这是一道有名的题目,这里还是再重复一下:问题描述:有5个不同国家的人住在5栋不同颜色的房子里,他们每个人只喝一种饮料,只样一种宠物,只抽一种牌子的烟,但是他们各自喝的饮料,养的宠物,抽的烟都不相同,已知:英国人住在红色房子里。瑞典人养狗。丹麦人喝茶。绿色的房子在白色房子的左边。绿色房子的主人喜欢喝咖啡。抽“坡魔”牌雪茄的人养鸟。黄色房子的主人抽“顿山”牌雪茄。住在中间房子的人喝牛奶。挪威人住在第一间房子。抽“波兰斯”牌雪茄的人住在养猫的人旁边。养马的人住在抽“顿山”牌雪.

2021-05-31 19:48:31 514

原创 视频演示《随机破墙法》构造迷宫

怎样用算法构造一个迷宫呢?这里给大家介绍《随机破墙法》。在一个N*M的房间矩阵中,假想有一个精灵,它从左上角的第一个房间开始,随机地从紧邻的上、下、左、右四个房间中选择一个,打破墙壁,移动过去。选择的前提是那间屋子以前没有访问过。如果发现周围的房间都以及访问过,无法移动,那么精灵就随机从已经访问过的屋子中找一个,再进行这样的操作。直到所有的房间都访问过一次。这个方法可以保证迷宫中任意一个房间都有一条唯一的路线可达。下面的运行显示,是c4droid下运行c++演示代码,并录屏得到的。造迷宫..

2021-04-29 20:18:12 154

原创 算24趣味扩展——五张牌中唯一一组用常规四则运算不能计算出2的组合

算24的扩展标准算24只是扑克牌计算玩法的一个特例。简单地说,至少有三种扩展:1、目标数字不仅是24,还可以算其他数字2、牌组不仅用4张牌组,还可以用3、5、6张牌组3、计算方法不限于简单四则运算,还可以增加新的运算方法五张牌组算2在前面的这三重扩展下,我发现了一个有趣的事情:几乎所有的5张牌组,用标准的四则运算都可以算出2。唯一一组不能计算的是[8, 13, 13, 13, 13]。但是,这一牌组,如果增加一个扩展运算:^(幂次运算例如:3 ^ 2 = 9),就可以算出2。有没有想挑

2021-01-20 13:00:06 718

原创 八皇后12组不重复解的pythonic编程法

八皇后问题,国际象棋盘上放8个皇后,互相不能攻击。这个问题如此有名,很多不会下国际象棋的人都听说过。所有可能的布局解一共有92种,但其中大部分是重复的,比如左右对称,或者是旋转棋盘对称。据说其中完全独立的布局一共只有12种。虽然我得到了一个12个不同的布局,但在网上一直没有找到12种布局图,所以无法验证。92种解用python求解92种布局是比较简单的,网上算法有很多(不知道去重之后有多少种),这里展示一个自己原创的解法。算法的特点是使用了字典来记录局面,使用yield机制来返回结果。这样的算法应该是

2021-01-05 10:20:13 1642 1

原创 什么样的知识才是力量?现代人焦虑的原因:缺少第三层的知识

世界上的知识,可以分为三层。第一层知识第一层知识是来自直接观测的客观知识:比如太阳升起,比如火焰跳动。包括我们可以观测到植物的生长状态、动物的生活习性。有了科学仪器后,我们有了更多的客观知识,可以观测到原子碰撞,星河的运行。甚至人类的喜怒哀乐、历史的兴衰更替,当我们从第三者视角观察时,他们都是第一层知识。什么样的知识才是力量?现代人焦虑的原因:缺少第三层的知识所有第一层知识都让我们了解了自己所身处的自然世界是个什么样子。仅仅是了解第一层的知识,对我们并没有什么更多的帮助。第二层知识当我们

2020-12-27 10:40:43 249

原创 Moviepy结合Basemap,用python制作旋转地球视频

python语言可以方便地制作和编辑视频,制作视频的核心是moviepy库,在使用moviepy的基础上综合调用其它的功能库,就可以做出各种有趣的视频。旋转的地球是比较常见的一个视频内容,我们看看怎样用20行代码实现它。【视频生成的基本概念】视频的本质就是连续的图片,利用人眼的视觉暂留而形成运动的感觉。视频有一个基本的参数叫做:FPS(frames per second):每秒多少张图片。如果一个视频的FPS=20,也就是每秒会闪过20张图片。所以,使用moviepy生成视频的一个核心就是如下的两句

2020-12-26 18:47:13 905 3

原创 神奇的图片处理技术,隐藏信息,点击才见

这是一种神奇的图片处理方式,可以让我们隐藏一部分图片的内容。当用户点击查看图片的时候,会有不同的内容显示出来!先看一下图片的效果一、原理注意,这不是动图(GIF)技术。动图是自动切换的,不会等到我们点击时才变化。这种技术之所以存在,是由于如下三个原因:1、手机由于窗口较小,所以对于图片,人们在阅读时习惯于点击放大观看。2、在文章中的图片,一般是白色背景;但在放大图片查看的模式下,则会自动切换为黑色的背景。3、一般的图片在黑色背景下只会显得比较突出而已,而png图片..

2020-12-16 19:36:57 1749 1

原创 朝闻道,夕死可矣。究竟闻的是什么道?

《论语》中有一句话是“朝闻道,夕死可矣”。如果早上能听到这个“道”,就算晚上死了都值。一直很好奇,究竟是什么道,这么值钱?在儒家经典里,这个问题没有真正有效的回答。一般的回答是一切宇宙中的真理。这种回答毫无意义——多少像爱因斯坦这样绝顶聪明的人,终其一生都没有研究明白宇宙中一个小小的分支(统一力场)的真理。把宇宙中的一切真理都让你一个早上就听明白,可能么?那么《论语》中的这句朝闻道,究竟是有解还是无解呢?在佛家经典中,看到了解答。说起来这是佛的弟子阿难的故事。那已经是佛灭度后又过了很多年,很多大弟

2020-12-10 14:11:53 594 1

原创 月食的形成,python3D编程基本概念:影子

月食的成因和日食有着非常大的差别。日食是月亮实体对太阳的遮挡,在观察者和被观察物(太阳)之间,存在着视线的阻隔。而月食则不同,在观察者和被观察物(月亮)之间,实际没有对视线的阻挡,而是因为地球挡住了唯一的光源:太阳,导致月亮因为没有光照而看不到。事实上,由于地球并不能完全挡住全部的太阳光,有一部分阳光通过大气层的折射仍然可以照在月亮上,所以月全食的时候,月亮并不是完全不可见,只是非常暗,而且带有红色。地球在前两节课程中,地球一直只作为一个观察点而存在,现在它将一个真正的角色出现,虽然仍然是身处幕后,

2020-12-06 17:35:01 595

原创 日食的形成,python3D编程:材质

前面的课程中,太阳只是以光源的身份出现,现在我们希望太阳走上前台,让我们能够看到。不过,这就有了一个问题:月亮是靠反射光源的光才让我们看到,但太阳不是这样,它本身就发光。为了进行这种设置,我们引入3D开发中的下一个概念:材质。材质材质也是模型表面的一种特性,它和纹理不同,纹理只是图片,材质则定义的是质感,比如反光率、发光情况,等等。材质+纹理+光源,三者共同决定了三维模型看起来的样子。材质包括五种属性:环境光漫反射率(Ambient)方向光(环境光之外的其它三种光)漫反射率(Diffuse)

2020-12-05 11:09:15 424 1

原创 月有阴晴圆缺,python3D编程初阶(2):运动与光辉

继续前文,讲述python3D编程中的运动控制。正好借此来研究一下月相的变化。月相变化的本质上是因为月亮绕地球的转动,导致地球(观察者)、月亮、太阳三者之间位置关系的变化。我们可以把这一运动进行简化为地球和月亮不动,太阳光的方向360度旋转变化。平行光的方向前文讲述了panda3D中的4种光源,其中平行光的特点是没有位置,只有方向。或者更准确地说,是光源的位置被忽略,真正起作用的是方向。这样,我们可以假设太阳是绕着原点运动,而光的方向始终由太阳指向原点。这也是符合真正的天文状态的。self.li

2020-12-04 11:55:47 479

原创 明月当空照,python3D编程初阶:坐标、模型、纹理与光

Panda3D是由迪士尼参与维护的一个3d游戏引擎,本意是面向商业用户的,所以它的性能是很不错的,使用也很方便。Panda3D支持通过c++或python的开发。安装Panda3D的最好办法就是直接去官方网站(panda3d.org)下载对应的安装包。3D开发并不难,只是有一些基本概念必须掌握,我们将一边学习3D开发,一般复习天文知识。今天先介绍这几个概念:坐标、模型、纹理与光。坐标二维系统中也有坐标,2根轴;3D下当然就是三维坐标,3根轴。panda3D中的坐标原则是屏幕的水平方向是X轴,垂直方

2020-12-03 13:06:15 1035 1

原创 python循环语句的缺陷,海象运算符在一定程度上弥补了它

标准的循环语句有三种:for循环,当循环,直到循环。python只支持其中的两个,for循环和当循环。当循环和直到循环唯一的差别就是循环条件判断在循环代码中的位置。当循环在开头,直到循环在末尾。这种差别并不算大,用当循环来实现直到循环也不是很难的一件事。但作为程序员,最难以容忍的是代码重复。比如按行读文件时,由于只能使用当循环,在python中不得不这样写,注意第二行与第五行的重复:with open('testfile.txt', 'r') as f1: line= f1.r

2020-12-01 18:50:39 308

原创 48种世间哲学,其中值得借鉴的有10个

(无图片版) 1、绝对主义(absolutism)——色盲• 绝对主义认为在任何一种学说里,某种观点必定是绝对正确或者绝对错误的。点评:没什么可说的,连影视剧都已经放弃了绝对主义。2、荒诞主义(absurdism)——恶搞• “荒诞主义”是对人生的极端反叛,认为人生的意义并不存在,所以可以活得很无厘头都无所谓。点评:荒诞主义有一丝的正确,但看不到人生的意义不等于没有意义,寻找意义本身,不正是人生意义的一部分么?3、唯美主义(aestheticism)——外貌协会• 唯美主义者的人生

2020-11-25 20:00:50 3164 1

原创 用Python画填色的中国分省地图(数据+源代码)

前一篇文章提供了中国陆地国界地图的多边形数据,这次将分省的多边形数据及省邻接数据分享给大家。画分省地图,还涉及到填色问题。本文也顺便介绍一下填色算法。数据的说明大体来说是每个省一个多边形,中国省级行政区严格来说有34个,但数据提供的多边形是33个。首先,在地图填色这个问题上,请允许我省略了香港和澳门两个特别行政区。另外,在北京和天津中间有一块河北省飞地,却大到了不能省略的地步。所以河北省包括2个多边形,如下图所示。给地图填色,有一个基本的规则就是相邻的两个省不能用同一种颜色。所以这里

2020-11-19 09:14:35 8984

原创 用Python画一个精确的中国地图(数据+代码10行)

数据来源气象级别的精度。下载地址:from CSDN或访问公众号:【橙实语】格式:文本文件读入方法:with open('china.txt','r', encoding='utf-8') as f1: china= eval(f1.read())数据内容:列表,内有三项,分别是大陆、海南岛、台湾岛的封闭多边形顶点值。数值:经纬度,浮点数。画图大多数作图工具都有画多边形的函数,直接调用即可。for shp in china: window['graph'].Dra.

2020-11-14 14:39:57 4125 1

原创 用python对算24游戏做一个全面分析

有了Python语言,编程者可以对算24游戏相关内容做一个比较彻底的分析。为什么必须python语言,其它语言不行么?当然也可以,只是python让很多算法可以比较简单地实现,让研究过程更有乐趣。算24全分析问题1:扑克牌玩法的算24游戏有多少种不同的组合问题2:其中有多少种组合是有解的问题3:扩展问题——算23,算25,等等问题4:计算能力最强的牌组问题5:给出计算过程问题6:不同牌组的计算难度问题1:扑克牌玩法的算24游戏有多少种不同的组合问题转化为一个组合问题:从1~13,抽取4个数字的组合,抽

2020-11-09 19:25:38 814

原创 python游戏引擎ppb介绍(7)补充与总结

其实作为一个2D游戏引擎,可以不必使用相机概念,但ppb引入的相机确实把一些相关功能整合在了一个直观的概念下,有一定的价值。目前游戏的操作都是基于鼠标,但是键盘事件也是互动操作中必不可少的一环,让我们看看键盘事件是怎样处理的。补充这两个内容容,对ppb的基本结构3个核心概念做一个总结。相机(camera)相机有三个直接的用处屏幕的放大和缩小 屏幕的移动 精灵可见性的检测放大与缩小只需设置一个参数(scene.main_camera.width)即可调整屏幕的比例:e

2020-11-09 10:14:07 335

原创 python游戏引擎ppb介绍(6)声音、文字与自定义事件

ppb播放声音的机制很简明,但相对而言显示文字的操作略显繁琐,可能这个引擎的设计者的本意关注的是更形象化的视觉效果。虽说一图胜千言,但总也有时候,文字是必不可少的。修改文字,我们使用自定义事件机制。这也是ppb引擎中一个比较有特色的实现。声音的播放我们希望在两个地方加入声音效果,一是导弹发射的瞬间,我们加入“嗖”的音效;另一个是靶子爆炸的瞬间,我们加入爆炸音效。音效文件本身无法在网页中提供,请朋友去爱给音效自行下载,或者留言向一声索取。发射导弹的代码是Blob类中的鼠标事件(on_but

2020-11-08 08:28:22 217

原创 python游戏引擎ppb介绍(5)爆炸:精灵的碰撞与删除

导弹击中靶子,这里涉及到精灵的碰撞检测;之后,靶子和这枚导弹都应当消失,这是精灵的删除。另外,我们希望看到一个靶子爆炸的效果。爆炸效果是另外一个动画精灵,它在自己的动画完成后自动删除。碰撞逻辑与之后的动作碰撞检测的逻辑放在靶子中:从场景中找到所有导弹对象 判断导弹对象与自己的距离(图片中点距离) 如果距离小于自己尺寸的1/2,则说明碰撞了检测到碰撞后做三件事:删除自己 删除导弹 在自己原来的位置上放一个爆炸精灵class Target(ppb.Sprite): ...

2020-11-07 08:35:06 495

原创 python游戏引擎ppb介绍(4)开炮:精灵的创建与移动

发射导弹,其实就是创建一个不断移动的新的精灵。本节课讲精灵的创建和它的自动平移,介绍层的概念,并开始使用资源路径。发射子弹Projectile是导弹的意思。我们建立第三个精灵类:Projectile。Projectile.png它的图片看起来是比较抽象的。与前两个精灵相同,我们只需建立一个同名的类就可以默认关联这个图片,但这次我们想显式地指定图片。这是因为我们不希望所有的图片都和源代码放在一起。我们在代码目录中建立一个子目录resources,并且把所有的图片都移动到这个目录

2020-11-06 08:06:57 305

原创 python游戏引擎ppb介绍(3)精灵属性与鼠标事件

精灵除了可以通过多帧形成一种动画效果之外,还必须可以在屏幕上运动,两种典型的运动方式是转动和平移,通过控制精灵的属性就可以实现。精灵的运动应该能够由用户来互动操作,这一机制是通过响应事件来实现的。精灵的属性上节课提到,每个精灵载入时默认的大小是1个单位,这个单位默认是窗口宽度的1/25,如果我们想某个精灵大一些,我们可以通过设置它的size属性来实现。比如我们把下面的软体动物大小设置为3,上面的靶子大小设置为2。class Blob(ppb.Sprite): image =...

2020-11-05 09:52:54 275

原创 python游戏引擎ppb介绍(2)精灵、场景与坐标

精灵(sprite)就是在屏幕上显示的一切事物,场景(scene)可以简单理解为屏幕,屏幕上的具体位置通过坐标来表示。静态精灵ppb中的精灵定义很有特色,非常简单。它可以直接对应一个外部的png文件。如果我们有这样一个图片,名字叫Target.png:我们只需定义一个同名的类,无须任何实际的代码,即可成为一个静态精灵:class Target(ppb.Sprite): pass注意精灵的默认大小是1,这个1,不是一个像素,而是一个坐标单位,详见下面场景与坐标...

2020-11-04 10:30:44 632 1

原创 python游戏引擎ppb介绍(1)安装与启动

用Python进行游戏开发,有很多可选引擎,我们首先介绍一个最简单的:PPB。ppb是一个相当小众的python游戏引擎,它的全名是PursuedPyBear,翻译成中文,含义大概可以理解为“被熊追”。从它的官方文档看,目前所有开发者都是女性,这也是一个有趣的地方。这个引擎的使用非常简单,当然功能也有限,用来做一些小规模的互动效果是可以的。ppb的基本概念不复杂,了解了它的概念体系,对于我们学习认识功能更强的引擎也是有帮助的。本系列教材预计分为6讲,将以开发这个下面这个简单的射击游戏为案例,

2020-11-03 13:39:36 1074

原创 为什么说偏远山区的孩子,更适合学编程

所有在大城市给学生培训编程的机构,几乎都不约而同地打出一个同样的旗号:学编程不是为了当程序员。学编程不是为了当程序员城市的孩子有很多机会,他们学编程当然不是为了当程序员,就如同他们学钢琴不是为了当音乐家。他们学习编程是为了提升所谓思维能力,其实家长对提升思维能力的效果也无从评价,因为随着孩子年龄的增长,思维能力本身就在持续提升,你从何判断其中编程学习的作用有多少呢?但山区的孩子就不同了。众所周知,山区的发展落后,生活条件比较艰苦。而究其本质,就是山区的工作机会少。山区不能容纳很多年轻人就业,

2020-10-31 14:14:30 1003 1

原创 python编程解数学方程(纯字符串格式)

用Python编程来解数学方程(纯字符串格式),没想到出人意料的简单。我们的目标是从字符串直接求解,而不是输入参数。例如:一次方程:3x+5=0二次方程:x^2+2x+1=0方程组:3x+5y=116x+5y=23解一次方程这是最简单的一种情况,这样一个简单的函数就可以实现def solv(func): p1, p2= func.split('=') a1, a2= p1.split('x') if a2=='': a2= '0' x= (

2020-10-28 08:02:51 2950

原创 python开发的任意表达式求值(全功能)

在前一篇文章的基础,进一步实现了全功能表达式求值。已支持浮点数已支持字符串的处理,前加一个"(类似lisp语法)支持减号/负号,一符两用机制支持所有算术运算符,包括**,//, %支持全部7个比较运算符支持与或非3个逻辑运算符支持自定义数学函数(代码中预设sin函数作为示范)支持外部提供的变量机制支持外部设置函数(代码中预设isvar函数作为示范)支持列表字典的支持,体现在外部的变量中结构清晰,易于扩展具有实用性及学习性与其说距离DSL只有一步之遥,不如说,DSL机制已经实现

2020-10-25 17:17:19 1752 2

原创 任意表达式求值(算符优先算法)

这里写自定义目录标题任意表达式求值算符优先算符双栈算符定义处理逻辑如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入任意表达式求值任意表达式求值的算法是很常用的一个功能,虽然python有自带的eval,但必须基于python语法。而我们很多时候想创建自己的DSL,表达式

2020-10-24 11:00:10 1670 1

原创 为什么90%的python教程并不能帮助零基础小白

python是非常适合初学者的编程语言,它足够简单,屏蔽了很多技术细节;同时又足够强大,能实现丰富的功能;最关键的是python上不封顶,从玩具到专业工具,一线贯通。 可惜目前市场上的Python课程,90%以上只适合有编程基础的人来学。真正适合零基础小白的极少。说一下这两种学习者之间的差异,你就知道为什么学习教程很难互用。差异一:有编程基础的人,对于基本的编程逻辑已经了解,学习python在很多方面只看一下相关功能在python中是怎么写的就可以了,学习重点在python...

2020-08-07 09:59:25 181

原创 为什么看了那么多教程仍然学不会python?因为没有想明白这个问题

学会python很容易,唯一的重点是,学会这个语言对你有什么用?简单的说,python也是一种技能,增加一个技能是有成本的。这个成本不仅仅是学习过程所花费的时间、金钱和精力。更大的成本在于这一技能与你现有的知识架构怎样融合。我把它说的更形象一些,如果你开了一家公司,希望你的公司拥有python开发的技能,你所做的就是到市场上雇佣一名掌握python的程序员。你所考虑的肯定不仅仅是给他的工资福利待遇,更多的是雇佣他之后将给你带来怎样的利益,以及这个新员工和现有的团队怎样融合在一起成为一个更强大

2020-07-24 20:43:20 373

原创 理想的编程入门语言什么样?

一个理想的编程入门语言,应该有下面这三个特点: 首先它的语法应该足够简洁,让学习者可以容易抓住重点,专注于编程的逻辑,而不是繁琐的实现细节。 其次它应该有强大的功能,让初学者就能做出很多真正有兴趣的内容。 第三,我们希望这个语言在学习的时候,它是一个高级玩具;而当我们精通之后,它又可以成为实用工具。即使我们不从事软件开发的行业,它也可以在很多方面给我们带来帮助。让我们学习编程的时间投资,产生双倍的收益。 这三个特点python都具备,尤其是第三个,是python独一无二的特点...

2020-07-09 17:37:11 194

原创 职场表达,你不能没有的套路——SCQA架构

职场表达,你不能没有的套路——SCQA架构感觉SCQA架构如果读出来会更有趣,哔哩哔哩推出了一种互动视频,就用这个机制做了一个动画。本博以前发布过用Python做动画的方法,当时共享的代码是第9版,现在是第15版了。...

2020-07-08 07:28:45 360

dev-c++开发的控制台粒子系统放礼花组字

圣手书生,恭祝大家,春节快乐

2022-01-26

devc++一步步开发一个围棋软件

基于鼠标操作,热座围棋软件,实现了完整的围棋落子规则(含打劫),但未包括数子功能。

2022-01-03

用python开发的本地OJ练习系统(附几道练习题)

开发一个简单的OJ系统,包括编译源代码,运行EXE,得到结果并比较等内容。 可以供python爱好者学习,供C++学习者练习。

2021-12-24

基于深搜的图片填色算法

用深搜算法来验证四色问题,使用了一些不便说明的数据,自己下载看,相信是有用的。

2021-12-14

一步步实现一个完整的万年历(c++入门)

从一个月历的显示开始,逐步完善,到最后完整地实现年历的显示。 保留了中间实现的目标版本,适合初学者参考学习软件的开发过程。

2021-12-11

dev-c++开发的全鼠标操作控制台战棋(完整源码)

dev-c++开发的全鼠标操作控制台战棋,完整源代码,使用了最短路径算法,alpha-beta剪枝策略等,其中最后一版的战力相当可以,来尝试一下?

2021-11-16

16*16点阵字库(6763个,格式直观)

16*16的点阵字库(含6700+汉字),提供了两种格式:excel和纯文本。 格式简单,使用方便!每个字后面跟着16个数字,每个数字转换为16位二进制,其中的1对应着可见的点。看这个例子: 安 512 256 16380 8196 16904 512 512 65534 1056 2080 6208 1600 384 608 3088 28680

2021-10-08

星空_sublist.zip

包括星座连线,恒星位置,星座故事等信息,Python直接读取。 https://blog.csdn.net/xiaorang/article/details/120600920

2021-10-04

python开发的任意表达式计算求值

基于算符优先算符的python开发的任意表达式计算求值类。 支持减号/负号,一符两用机制 支持浮点数、整数、字符串(用一个“开头,仿lisp语法) 支持所有算术运算符,包括**,//, % 支持全部7个比较运算符 支持与或非3个逻辑运算符 支持自定义数学函数(代码中预设sin函数作为示范) 支持外部提供的变量机制 支持外部设置函数(代码中预设isvar函数作为示范) 结构清晰,易于扩展。 具有实用性,同时可以用于学习算符优先算法的功能。

2020-10-25

用Python做一个漂亮的太阳系运动视频

用Python做一个漂亮的太阳系运动视频。包括源代码与素材。 须安装ffmpeg,否则只能生成分帧。 参考教程:https://blog.csdn.net/xiaorang/article/details/106884311

2020-06-24

旋转的微信地球(python实现)

旋转的微信地球,全部资源和源代码 参考教程:https://blog.csdn.net/xiaorang/article/details/106920298

2020-06-24

python开发真实星空显示tkinter软件

python开发的真实星空显示软件 含真实恒星位置数据3144颗 代码讲解见: https://blog.csdn.net/xiaorang/article/details/106598307 数据格式例: {'long': 0.023278328898474372, 'lat': -0.09961466705757636, 'light': 46, 'const': 66}, {'long': 0.024870941840919196, 'lat': 0.2338062439126301, 'light': 55, 'const': 62}, {'long': 0.028107061526797, 'lat': 1.1204335039257496, 'light': 56, 'const': 18}, {'long': 0.03660100303760025, 'lat': 0.5077259659824991, 'light': 21, 'const': 1}, {'long': 0.04004802831028905, 'lat': 1.0323574005393255, 'light': 23, 'const': 18}, {'long': 0.03944444109507185, 'lat': 0.3178583859888262, 'light': 55, 'const': 62}, {'long': 0.040797071265367454, 'lat': -0.488478858963941, 'light': 54, 'const': 74}, {'long': 0.0410661312228549, 'lat': -0.798444499556106, 'light': 39, 'const': 64}, {'long': 0.043800486202076855, 'lat': 0.1945266317121166, 'light': 55, 'const': 66}, {'long': 0.045036755271142, 'lat': 0.804111967609767, 'light': 50, 'const': 1}, {'long': 0.043785947609407745, 'lat': -1.4350775693910554, 'light': 53, 'const': 58}, {'long': 0.04915283505929031, 'lat': -0.2699684886295715, 'light': 49, 'const': 21}, {'long': 0.050498187206605094, 'lat': -0.4851966800391031, 'light': 54, 'const': 74}, {'long': 0.05119631890740283, 'lat': -0.6131874860342564, 'light': 52, 'const': 74}, {'long': 0.05775584219505068, 'lat': 0.26500400429202875, 'light': 28, 'const': 62}, {'long': 0.05896303407877759, 'lat': 0.7162006931179011, 'light': 57, 'const': 1}, {'long': 0.06371905629046214, 'lat': 0.3526728525507925, 'light': 48, 'const': 62}, {'long': 0.06387905062299246, 'lat': -0.33043929519585447, 'light': 44, 'const': 21}, 代码解说详细的教程见: https://blog.csdn.net/xiaorang/article/details/106598307

2020-06-08

一键生成动画源代码与演示资源

用python演示一键生成动画技术,智力题《你是哪班的》。包含全部资源,直接可以运行。须安装几个第三方库。 参考教程地址: https://blog.csdn.net/xiaorang/article/details/106169578

2020-05-18

控制台c++开发的贪吃蛇源代码

利用控制台RPG的引擎,稍加扩展,实现贪吃蛇的操作是比较简单的。 这个版本的好处是运行效果好,没有闪烁。 开发过程的系列教程,请参考我的博客,下面的地址。 教程地址参考 https://blog.csdn.net/xiaorang/article/details/104959422

2020-03-22

lesson2_4.rar

第二章教程14的地图文本文件、源代码。 教程地址参考 https://blog.csdn.net/xiaorang/article/details/104959422

2020-03-20

lesson2_3.rar

第二章教程13的地图文本文件、源代码及辅助工具。 教程地址在: https://blog.csdn.net/xiaorang/article/details/104959422

2020-03-19

lesson2_2.rar

第二章教程12的地图文本文件与源代码。 教程地址在:https://blog.csdn.net/xiaorang/article/details/104936690

2020-03-18

lesson2_1.rar

第二章教程11的地图文本文件与源代码。 教程地址在:https://blog.csdn.net/xiaorang/article/details/104913507

2020-03-17

chinaMap.rar

中国各省(港澳不单列) china_prov.lst.txt 各省临接矩阵(两个文件格式不同,但等价,台湾不与任何省相临) china_map.arr.txt china_map.csv.txt 中国分省纯色地图(可填色) china.png 可以用来做最短路和四色问题的测试数据

2020-02-21

所有汉字的拼音.txt

每个汉字一行,共20850个汉字,每个汉字的拼接字母及音调(用0~4)标明。

2019-07-20

用动态规划的思路算24,并输出计算过程

当N=1,所给的数字是24即可以算出,否则不能算出。 如果N>1,循环地取其中的两个进行许可的运算(一般只允许加、减、乘、除),得到一个新的数字。将这个新的数字与剩下的数字形成一个新的问题:这N-1个数字能否算出24。这就形成了递归。

2019-07-07

有界面(wxPython)的python贝塞尔曲线拟合多点的演示

和上一个版本的基本功能相似,区别在于这个版本将贝塞尔曲线的反算拟合功能封装为一个函数,直接import BezierTool 之后,调用makeBezier即可。 采用了互动选点的技术(这是从另外一个高分下载处得到的,他的功能只是通过控制点画线,缺少反算功能,但仍有其价值,故也保留)。 如果没装wxPython的,首先pip install wxPython才可以使用界面功能。

2019-07-04

正确可用的基于python实现的贝塞尔曲线拟合(含数据)

贝塞尔曲线拟合多边形,本来以为是很标准的算法,必然有Python的现成库存在,但搜了几天下来,竟然没有一个。 csdn上有一个版本,是基于某篇文章修改的python版本,但算法有错。 该文章的地址在此:https://blog.csdn.net/sky_pjf/article/details/52816750 我下载了此版本,并做了修改,现在上传的是正确的版本。 控制点的选取和实现思路,都是从该文章来的。 效果还比较好,希望对大家有帮助。

2019-07-02

立体星图3.8完整源代码

立体星图3.8完整源代码,包含控件(DELPHIX2000)完整可运行的代码。 以及全部图片和文字资源。可以看到天文星图的计算逻辑。希望对大家有帮助。

2018-08-14

RPG游戏源代码(赛福奇遇记)H5版

这是一个用H5开发的RPG游戏的第一章,全部源代码,仿吞食天地,明雷模式。故事是一个阿拉伯传奇故事,颇有一千零一夜的感觉。

2018-07-28

DELPHI做后台的网站源代码

一、关于后端 1、完整DELPHI代码,使用最基本的CGI 2、稍加改动,可以用于ISAPI等 3、后端纯接口,类似RETFUL 4、内置SQLite数据库,稍做修改可以换用其他数据库 5、编译结果是EXE,复制到服务器的CGI目录下后,建议去掉exe扩展名 6、以此基本框架为参考,可以快速开发网络服务 二、关于前端 1、纯静态页面 2、使用Ajax接口从后台获取服务 3、使用jqGrid 4、支持文件的上传,自动解压,自动改名 5、使用了localstorage技术,不是很好,高手可以自行修改 三、关于服务器 1、使用的是CGI技术,可以适应于任何服务器 2、为了展示方便,附带了一个小型服务器abyssws.exe 3、abyssws.exe必须运行在非中文路径下 4、第一次启动请运行runserver.exe配置路径,以后直接运行abyssws.exe即可 5、默认使用8001端口 6、如果使用apache等服务器,请自行配置CGI

2018-06-29

曲线图工具

根据CSV数据文件,画曲线图的一个工具的完整源代码。本来是作为交易分析的一部分,但交易分析效果不彰,现在把它独立出来源代码共享。从技术上来看,亮点包括一个分析命令行参数的框架(实际上是一个制作DOS命令行工具的框架),以及按比例曲线作图的方案。 使用说明详见内部。

2018-06-28

类代码自动生成工具

这个软件工具,包含全部源码。其功能在于根据多个有相互关联的类的结构定义(属性支持字符串、数字、布尔、列表),自动生成pascal代码,包括常见的savetofile,savetostream,copyfrom等函数。很大程度上节省了工作量。 其技术上的亮点包括使用yacc/lex技术进行了词法和语法分析,delphi代码的自动生成等。希望对下载的朋友有所帮助。 详细的说明见其中"使用说明.txt"

2018-06-28

ftp下载工具

一个支持手机文件自动FTP下载的完整源代码。软件本身具有实用价值,可以定期将手机中多个目录的文件下载到计算机中整理保存。技术方面展示FTP的下载方法以及一种基于ini的参数管理框架(手机须打开FTP服务)。另外,希望其中unitTools.pas提供的个人常年使用的各种工具函数能够对下载者有帮助。

2018-06-28

遗传算法+神经网络引擎源代码

分别独立,又可以协同工作,具体用法参见代码示例。

2016-11-24

空空如也

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

TA关注的人

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