十一年级时,我编写了自己的第一个程序 "Dingo Hopper"。在游戏中,玩家控制一只小恐龙在灰色方块上跳跃。Dingo Hopper 并不有趣,也没有取得商业上的成功,但它是一款游戏。

什么是游戏?我从维基百科中摘录了以下关于游戏的定义:"在最基本的层面上,我们可以将游戏定义为一种自愿控制系统的行使,在这种系统中,各种力量之间存在着对立,受程序和规则的限制,以产生一种不平衡的结果"。(艾略特-阿维顿和布莱恩-萨顿-史密斯)。

从根本上说,在游戏中,玩家根据游戏规则做一些事情,从而使某些事情发生。从这个意义上说,《叮当跳》无疑是一款游戏。玩家自愿按下 "跳跃 "按钮,以抵消向其方向袭来的灰色方块的强大力量。他们这样做的目的是为了欣赏我用 MS Paint 制作的美妙背景风景。

ls "命令(列出计算机上的文件)怎么样?Jira 呢?Python 呢?

程序是一套将输入转化为输出的规则。程序不一定要有趣(见:Jira)、有趣或重要,但它们需要有规则,需要产生输出。

程序就是游戏 当运行一个程序时,用户会自愿控制他们给程序的输入。用户可以让 ls 按创建日期升序排序文件,或显示不同目录下的文件,或给出将被拒绝的垃圾输入。ls 使用它的规则为这些输入提供相应的输出,或者是文件列表,或者是输入无效的错误信息。

编程是一场游戏 Python 又是什么?Python 是一种编程语言,是以下意义上的程序:Python 将输入(代码)转换为输出(程序)。

所以,Python 是一个程序,程序是游戏,所以 Python 也是一个游戏。是的,我们把定义延伸到了这里,但现在我们可以就这个游戏提出一个重要的问题。

编程好玩吗?我的答案是,我认为编程可能是最有趣的游戏,也许这就是我花这么多时间进行编码教育的原因。

在玩大多数游戏时,你都是一个演员,行使 "自愿控制 "来创造某种结果,比如赢或输,或者在《模拟城市》中创造一个漂亮的大都市。虽然这些都是不错的结果,但与创建一个程序相比,它们就显得苍白无力了,因为程序是将宇宙中所有可能的输入映射成输出的一种方式,而每一种输出都能带来各自的满足感。

让更多的人参与到游戏中来 主张教更多的人学习编程有很多理由,但在我看来,目的是让人们了解这种游戏中的游戏,因为它在所有其他活动中独一无二。要做到这一点,我们需要考虑如何教授游戏规则,并宣传它为何如此特别。

像这篇文章中提出的抽象论点无法说服人们尝试编程。我们需要的是更易学的编程语言,以及教授其规则的便捷方法。更重要的是,我们应该让人们更容易制作出本身就很有趣的程序。这些努力的成果可以帮助更多的人发现唯一比 Dingo Hopper 更有趣的游戏。

如果这还不够,你创建的程序本身也可以是一种编程语言。这是一种遵循规则来创建程序的行为,在这种程序中,其他人可以遵循你的规则来生成一个程序,而这个程序的规则决定了其他人的输入如何转化为输出。说起来拗口,但却非常棒。