技术开发 频道

10 PRINT带你领略一行代码背后的新世界

  【IT168 编译】10 PRINT是一本探索单行代码魔力的新书。

  下面这一行代码是在1982年运行在Commodore 64上的,它是世界上计算机最早生成的例子之一。

一行代码可以做什么?这些单行代码实现的功能酷到没朋友!

  只有短短的一行代码却为我们展现出了一个新世界:

  10 PRINT CHR $(205.5 + RND(1)); :GOTO 10

  这种一行代码编程的可能性给了很多程序员新的灵感和刺激,我们可以通过代码来找到自己,看到世界,发现充满想象力的新世界。

  如何理解10 Print建立一个世界

一行代码可以做什么?这些单行代码实现的功能酷到没朋友!

  10 Print是用BASIC编程语言编写的,所以如果从现代语言的角度去看,它会有很多怪癖。首先,Basic只是一个原始终端,需要输入程序,并且每次输入时都要编写一组特定的命令,然后依次执行。

  例如,它有行号用于结束代码行的无限重复,而大多数现代编程语言都没有这种内置,因为我们使用名称来定义更明确的模块和函数。

  接下来,我们使用CHR $函数,并将其传递给数字205.5 + 0和1之间的随机值。所有数字都是平台上的浮点值,并向下舍入,这样我们的代码会生成字符205()或206(/)。通过这个无限循环产生正斜杠或反斜杠。

  当然,Python也可以使用一行代码在终端实现上述效果。reddit用户WK02在shell中使用一行Python代码实现了10 PRINT:

一行代码可以做什么?这些单行代码实现的功能酷到没朋友!

  Python 3和Pygame中重写10 PRINT

  但是,10 PRINT在Python 3和Pygame中无法使用一行代码实现,生成线条的代码很容易,但设置绘图窗口却需要很多代码。

一行代码可以做什么?这些单行代码实现的功能酷到没朋友!

一行代码可以做什么?这些单行代码实现的功能酷到没朋友!

  程序中绘制真正绘制10 PRINT的代码来自下面几行:

一行代码可以做什么?这些单行代码实现的功能酷到没朋友!

  我们设置一个方块作为x轴和y轴变化的单位,例如方块大小设置为20,那么x和y轴可能为0,20,40,60,80…一直达到screenHeight和screenWidth。

  接下来,我们使用random.random()函数来生成一个介于0和1之间的数字。如果这个数字大于0.5,我们从底部到右上角(/)绘制一个对角线。如果random.random()的数字小于0.5,我们从左上角到右下角()做一条对角线。

  通过这种方法在Python 3中实现了效果。

  编码挑战:动画10 PRINT

一行代码可以做什么?这些单行代码实现的功能酷到没朋友!

  如果想要PRINT动起来,那么我们就要从一组静态的点来进行操作:

一行代码可以做什么?这些单行代码实现的功能酷到没朋友!

  通过上述代码来循环访问和操作一系列的线条点。

  上面的代码只是抛砖引玉,如果想要深入了解可以在GitHub中继续学习,地址:https://github.com/burningion/10-print-python-pygame。

  需要注意的是,当前每一步代码都会将图像写入磁盘,因此如果不想保存图像,则需要将该行注释掉。

  下面是Reddit用户baltoxydase在Pygame中发布的10 PRINT的版本,可供大家参考:

0
相关文章