当前位置: 首页 > 科技观察

为什么Python和Pygame最适合编程初学者?

时间:2023-03-15 00:22:03 科技观察

Pygame是初级程序员的最佳选择的三个原因。上个月,ScottNesbitt发表了一篇题为Mozilla花费500,000美元支持开源项目的文章。其中一个项目,Phaser,一个基于HTML/JavaScript的游戏平台,获得了50,000美元的奖励。整整一年我都在使用Phaser平台来教我最小的女儿,它是最容易学习的HTML游戏开发平台。但是,对于初学者来说,使用Pygame可能会更好。原因如下:1.Pygame,一个小代码块,基于计算机课程中最流行的语言Python。Python非常适合用一小段代码实现我们的想法,孩子们可以从单个文件和单个代码块开始,在掌握函数或类对象之前编写意大利面条代码。就像手指画一样,所想即所得。这样学习,当写代码越来越难管理时,孩子自然会把代码分解成功能模块和类模块。通过在学习函数之前学习Python语言的语法,学生将掌握基本的编程知识,更好地理解全局范围和局部范围。大多数HTML游戏在一定程度上将结构、样式和编程逻辑拆分为HTML、CSS和JavaScript,并且需要CSS和HTML知识。虽然从长远来看拆分更好,但对初学者来说可能是一个障碍。一旦孩子们发现他们可以使用HTML和CSS快速构建网页,他们很可能会被颜色、字体和图形的视觉刺激分散注意力。即使你只专注于JavaScript代码,你也需要学习基本的文档结构模型(DOM),以便将JavaScript代码嵌入其中。2.全局变量更清晰。Python和JavaScript都使用动态类型变量,这意味着只有当一个变量被赋值时,才能确定它的类型是字符串、整数还是浮点数。但是,它在JavaScript中更容易出错。与类型化变量类似,JavaScript和Python都有全局变量和局部变量。在Python中,如果要在功能块中使用全局变量,就会使用global关键字来区分它们。要了解在Phaser上教授新手编程的挑战,让我们以由AlvinOurrad和RichardDavey开发的基本的MakeYourFirstPhaserGame教程为例。在JavaScript中,在程序的任何地方都可以访问的全局变量很难跟踪和调试,经常会导致bug并且很难解决。由于Richard和Alvin是专业程序员,因此这里有意使用全局变量以保持程序简洁。vargame=newPhaser.Game(800,600,Phaser.AUTO,'',{preload:preload,create:create,update:update});functionpreload(){game.load.image('sky','assets/sky.png');}varplayer;varplatforms;functioncreate(){game.physics.startSystem(Phaser.Physics.ARCADE);...在他们的Phaser编程手册《Interphase》中,RichardDavey和IlijaMelentijevic解释道:常用于许多Phaser项目,因为使用它们可以更轻松、更快速地完成工作。“如果你曾经开发过一款游戏,只要代码量是一定大小,那么这种做法(使用全局变量)就会给你带来麻烦,但我们为什么要这样做呢?原因很简单,就是为了让我们的Phaser项目更容易做,只是更简单。”对于一个Phaser应用来说,虽然可以通过使用局部变量和拆分代码块来重构代码,实现关注点分离,但显然有必要让初学编程的孩子看得懂。非常困难。如果您想教您的孩子JavaScript,或者如果他们已经知道如何使用Python之类的东西进行编程,可以推荐一门很好的Phaser课程:由PabloFariasNavarro开发的完整手机游戏开发课程。虽然标题看起来像一款手机游戏,但它实际上是关于JavaScript和Phaser的。JavaScript和Phaser移动应用程序开发已转移到PhoneGap主题。3.Pygame无依赖要求由于PythonWheels的出现,Pygame超级容易安装。在Fedora/RedHat系统下,也可以使用yum包管理器安装:sudoyuminstallpython3-pygame更多信息请参考官网Pygame安装文档。相比之下,虽然Phaser本身更容易安装,但它需要更多的知识。如前所述,学生需要将他们的JavaScript代码与一些CSS一起组装到HTML文档中。除了这三种语言(HTML、CSS、JavaScript)之外,还需要火狐或者谷歌的开发者工具和编辑器。最常用的JavaScript编辑器有Sublime、Atom、VSCode(按使用次数排序)等。由于浏览器的同源策略,如果直接在浏览器。您必须运行Web服务并通过该服务访问这些文件。幸运的是,对于大多数工程项目,你不需要在本地运行Apache服务,你只需要运行一些轻量级的服务,比如httpsster。Phaser和JavaScript的优点JavaScript和Phaser都有各种不好的地方,为什么我一直教他们?说实话,我想了很久,担心同学们学习变量声明来提高变量提升和变量作用域。我开发了基于Pygame和Python的课程,然后是基于Phaser的课程。最终,我决定以Pablo的预制课程为起点。我切换到JavaScript有两个原因。首先,JavaScript已经成为实际应用程序的官方语言。除了Web应用程序,它还可以用于移动和服务应用程序。JavaScript无处不在,它被用在孩子们每天看到的应用程序中。如果他们的朋友使用Javascript编程,他们也可能会受到影响而使用它。当我看到JavaScript背后的动力时,我深入研究了可编译为JavaScript的替代语言,主要是Dart和TypeScript。JavaScript是我的最爱,尽管我不介意额外的转换步骤。最终,我选择了Phaser和JavaScript的结合使用,因为我意识到上面的问题都可以在JavaScript中解决,只需要一点点功夫。高质量的调试工具和一些伟大思想的工作使JavaScript成为一种可用且有用的语言来教孩子们编码。最终主题:Python与JavaScript当父母问我用什么语言开始他们的孩子时,我立即推荐Python和Pygame。因为有成千上万的课程可供选择,而且大部分都是免费的。我为我的儿子参加了AlSweigart的Python和Pygame游戏开发课程,我还在使用AllenB.Downey的关于Python编程的思考:如何像计算机科学家一样思考。可以使用TomRothame的PAPTPyame在Android手机上安装Pygame游戏。尽管有我的建议,但我始终怀疑孩子们是否会很快转向JavaScript。没关系——JavaScript是一种成熟的编程语言,有很多很多辅助工具。但是在帮助我的大儿子用Python开发了很多酷游戏之后,我仍然喜欢Python和Pygame。