侵权投诉

【数码宝贝】里泉光子郎的编程到底处于什么水平

汉中乐博乐博机器人 2020-11-05 10:52 次阅读

电影《数码宝贝大冒险:最后的进化·羁绊》近期开始上映,看到大银幕里一张张熟悉又陌生的脸,就很容易想起那段热血沸腾的时光,乐乐也非常喜欢动漫里一个个独特的角色。

尤其是里面的光子郎,他在团队中相当于军师的角色,性格冷静且十分聪明。

这个小男孩对所有人都很礼貌(包括父母),会在称呼后加上敬语。经常背着一台仿APPLE的笔记型电脑到处跑的男孩,儿时双亲却死于车祸,由父母的远房亲戚收养。和太一关系相当好,在可能遇到黑暗四天王的攻击危险之下,仍然与太一一起出去寻找感冒药。

其中非常经典的一个情节就是,最早在档案岛的安杜路兽的工厂中,光子郎通过分析巨大「电池」内墙壁上的文字(也就是数码文字和一些数字,还有人类世界的文字)从而描绘出了档案岛的全貌。

然而当时动画给的一个画面就是光子郎的屏幕是我们熟悉的【编程】,那《数码宝贝》里泉光子郎的编程水平到底有多厉害呢?知乎上有一位大神借此做了解答。

题图:RandomForest/知乎

怎样评价《数码宝贝》第一部中的泉光子郎的编程水平?

答主:RandomForest(2万+赞同)

受到@夜路川答主勇于用python进化自己室友的激励,我顺便深挖了一下《数码宝贝》第一部第五集中光子郎在电脑上敲出的代码,终于把原始代码跑了出来,视频在最后。

《数码宝贝》第一部第五集截图

虽然这段代码会自己乱动并让甲虫兽进化,显得狂拽酷炫吊炸天,但其实和第十集出现的代码是一模一样的(而动画里表现出的效果明显不同)。第十集里的代码反而看得更清楚一点。

《数码宝贝》第一部第十集截图

根据这张图抽出文本如下:

100/*funcsample.coastcreation*/

110floats

120whiles<1 or s>=2

130input"ratio1to2";s

140endwhile

150s=(s-1)/10+1

160screen1,2,1,1

170s=sqr(s*s-1)

180floatx0=100,x1=412,y0=0,y1=0

190fractal(x0,x1,y0,y1,1)

200line(100,50,412,50,255,65535)

210end

220funcfractal(x0;float,x1;float,y0;float,y1;float,sp;int)

230floatl,r,x2,y2

240l=sqr((x1-x0)*(x1-x0)+(y1-y0)*(y1-y0))

250ifl<2 or sp>=9then{

260line(x0,y0/3+50,x1,y1/3+50,255,65535):return()

270}

280r=rnd()+rnd()+rnd()-2

290x2=(x0+x1)/2+s*(y1-y0)*r

300y2=(y0+y1)/2+s*(x0-x1)*r

310sp=sp+1

320fractal(x0,x2,y0,y2,sp)

330fractal(x2,x1,y2,y1,sp)

340endfunc

如果想重新原汁原味地运行这段代码,首先要明确它的语言和版本。注意到注释和变量定义的语法更接近C系语言,但还有endwhile、func、endfunc等关键字,可以确定这不是VB或者其他主流的BASIC系语言。

但是代码行号的格式暴露了这货肯定是个远古产物,我本来想看看光子郎电脑上这个文件的后缀名是什么,瞅了半天发现是「名称未设定3」(见上图),失去线索的我只能开始疯狂的google……

在资料检索过程中主要发现两个问题。一是和这段代码语法相近的语言太多,比如VFP(VisualFoxPro,知道它的人肯定都老了)、VimScript、SAP采用的ABAP、早期PHP、伪代码的某个版本[1]、乃至德仪计算器的自创脚本语言等等。经过一个个的尝试,发现这些语言都是形似神不似,并不是真正的答案。

GoogleBooks里找到的一本TI计算器手册

第二个问题是,如果仔细看光子郎的代码,你一定会陷入困惑,因为这段代码根本不像是有一个统一的语法规则。这里举两个栗子:

流程控制语法不统一。120-140行的while-endwhile结构,或许让你觉得和BASIC有一点点类似,而且顺便猜测if语句肯定也会有个endif结尾。但是250-270行的if语句居然用了大括号,更丧心病狂的是在then后面接大括号!

变量声明格式不统一。110行是类C的声明格式,而220行的函数参数却用了类似ECMAScript的声明方式,但用的不是冒号是分号。这让我一度以为这段代码就是导演魔改的,是一种不存在的噩梦般的语言。

然而,在我就要放弃之际,一位国外先行者的博文给了我曙光(尽管文章里有一些错误)[2]。这个语言最终还是被查出来了……事情要追溯到1987年,夏普发布了一款型号为X68000的PC。作为那个年代的电脑,搭载了10MHz的摩托罗拉68000CPU,1MB的内存,没有硬盘,且只在日本发售[3]。其操作系统是夏普为这一系列电脑专门设计的Human68k,《数码宝贝》中的那段代码,就属于这个操作系统专有的编程语言X-BASIC[4]。

SharpX68000ACE-HD

X-BASIC手册

日本维基上X-BASIC的一段例程这个系列的最后一款电脑在1993年发布(配置有所增强),而《数码宝贝》第一部是在1999年放映的,可见在动画制作时期,光子郎的代码也不算特别陈旧。为了实际地跑一下这段代码,又经过一番艰辛的努力,我搞到了X68000的模拟器,还有操作系统Human68k(version3.02)的磁盘映像,现在还能找到这些东西,真的要感谢极客阿宅们的默默奉献。在模拟器里一开机,感觉就成功了一半:

为了能使代码顺利运行,还需加载SX-WINDOW映像。最后终于找到X-BASIC,一字不差地键入了光子郎的代码:

执行run命令,按代码要求输入一个1到2之间的浮点数值,下面就是见证奇迹的时刻了!运行《数码宝贝》光子郎写的代码:

我不禁望向窗外的那只放屁虫,它仍在很悠闲地晒太阳,很遗憾我的甲虫兽并没有进化……原因很简单,这真的只是一段随机生成「coast」轮廓的代码。初始输入是一个阈值,从视频里看,显然阈值越高「海岸」越险峻,阈值越低「海岸」越平滑,很有可能是摘取了当时哪个游戏里地图生成器的一段源码。所以,导演又糊弄事呢?最后话说回光子郎的编程水平,这段代码的难点主要在于用递归实现了分形图形的绘制,虽然没什么特别神秘的地方,但还是需要一定程度的编程技能和数学知识。原理上很像我之前绘制谢尔宾斯基三角形的代码。但是光子郎当时好像上小学四年级?

而且在动画里,这段程序的输出是这样的,光子郎最后靠这个成功还原了他和美美所在的迷宫。

嘛,单从这里看,感觉能进科大少年班就是了……彩蛋:当年X68000系列的电脑还随附一个名为060turbo[5]的软件,单独装在一个磁盘。这个软件的唯一功能是在屏幕上随机打印一张复杂的分形图形(疑似Mandelbrot图像?并不是很确定)。我用模拟器试了一下,效果确实惊艳,感觉光子郎在成为分形大师的路上还需努力23333。

参考1.^PseudocodeExampleshttps://www.unf.edu/~broggio/cop3530/3530pseu.htm2.^RunningIzzy's"Digivolving"codehttps://digitalworldproblems.tumblr.com/post/76036641581/while-im-looking-at-that-moviecode-post-he3.^X68000https://en.wikipedia.org/wiki/X680004.^X-BASIChttps://ja.wikipedia.org/wiki/X-BASIC5.^060turboの添付ディスクhttp://retropc.net/x68000/software/hardware/060turbo/disk060t/

责任编辑:xj

原文标题:《数码宝贝》里泉光子郎的编程水平到底有多厉害?

文章出处:【微信公众号:汉中乐博乐博机器人】欢迎添加关注!文章转载请注明出处。

原文标题:《数码宝贝》里泉光子郎的编程水平到底有多厉害?

文章出处:【微信号:lebo13992672467,微信公众号:汉中乐博乐博机器人】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

【干货】单片机入门到精通之单片机C语言知识分享

学习单片机C语言必要知识点集合,很实用,需要的可以看看,可以有很大提升。 ...
发表于 02-27 11:31 130次 阅读
【干货】单片机入门到精通之单片机C语言知识分享

C语言程序设计实用教程

在各章的讲解穿插典型实例进行说明。本书的写作以基本功能介绍(穿插实例)为主,每章最后以一个比较典型的....
发表于 02-26 16:17 19次 阅读
C语言程序设计实用教程

Go语言在世界各地的使用情况如何?

【导读】Go语言在世界各地的使用情况如何?数据说话,带你直观感受什么叫“酷小孩都用的语言”! Jet....
的头像 Linux爱好者 发表于 02-26 14:10 189次 阅读
Go语言在世界各地的使用情况如何?

华为自研编程语言仓颉曝光

企查查App显示,近日,华为技术有限公司申请注册“仓颉语言”商标,国际分类为42类,设计研究。
的头像 如意 发表于 02-25 17:38 943次 阅读
华为自研编程语言仓颉曝光

华为申请注册“仓颉语言”商标 自研编程语言

2月25日消息,企查查App显示,近日,华为技术有限公司申请注册“仓颉语言”商标,国际分类为42类,....
的头像 工程师邓生 发表于 02-25 16:46 328次 阅读
华为申请注册“仓颉语言”商标 自研编程语言

求解答!

有大佬说编程可以改动电流流向,请问这是真的吗? ...
发表于 02-25 15:28 105次 阅读
求解答!

DSP芯片的应用总结详细资料说明

数字信号处理( Digital Signal Processing ,简称DSP )是一门涉及许多学....
发表于 02-25 11:52 40次 阅读
DSP芯片的应用总结详细资料说明

人工智能和编程将进入中小学教育

春回大地,全国多地陆续开学,而长沙2021年春季中小学大有不同,据新闻报道人工智能和编程将进入中小学....
的头像 电子魔法师 发表于 02-25 11:38 648次 阅读
人工智能和编程将进入中小学教育

干货分享:C语言函数大全和C语言程序实例~

对于初学C语言以至于单片机的,很好的例程练习和C语言函数查阅资料,对于程序员笔试题也是很好的借鉴。 ...
发表于 02-25 11:30 132次 阅读
干货分享:C语言函数大全和C语言程序实例~

怎么制作寻迹小车?

智能小车现在差不多是竞赛或者DIY中的主流了,寻迹,壁障,遥控什么的,相信大家也都见得很多了,这次就大家探讨一下寻迹小车...
发表于 02-25 07:26 0次 阅读
怎么制作寻迹小车?

C语言编程的基本规范有哪些?

为了提高源程序的质量和可维护性,从而最终提高软件产品生产力,特编写此规范。本标准规定了程序设计人员进行程序设计时必须遵循...
发表于 02-24 07:22 0次 阅读
C语言编程的基本规范有哪些?

编程中的同步和异步意味着什么?

承接上文《终于明白了,一文彻底理解I/O多路复用》。在这篇文章中我们来讨论一下到底什么是同步,什么是....
的头像 玩转单片机 发表于 02-23 16:02 161次 阅读
编程中的同步和异步意味着什么?

C与VB语言联合在proteus上仿真实例的工程文件免费下载

本文档的主要内容详细介绍的是C与VB语言联合在proteus上仿真实例的工程文件免费下载。
发表于 02-23 08:00 16次 阅读
C与VB语言联合在proteus上仿真实例的工程文件免费下载

单片机应用编程技巧那些常见的问题有哪些?

C语言和汇编语言在开发单片机时各有哪些优缺点?   C或汇编语言可以用于单片机,C++能吗?   搞单片机...
发表于 02-23 06:10 0次 阅读
单片机应用编程技巧那些常见的问题有哪些?

单片机的编程架构是咋样的?

新手必看之单片机的编程架构
发表于 02-22 06:20 0次 阅读
单片机的编程架构是咋样的?

从入门到高级替换If-Else的5种方法示例

本文并不肯定或者否定哪一种写法,仅仅为大家提供一些其他的编码思路或者一些值得借鉴的点子。 设计更好的....
的头像 算法与数据结构 发表于 02-20 16:27 289次 阅读
从入门到高级替换If-Else的5种方法示例

程序员是怎么写代码的?常见问详解

腾讯程序员是怎么写代码的?,代码,插件,sql,调用,编程
的头像 电子发烧友网工程师 发表于 02-20 15:38 129次 阅读
程序员是怎么写代码的?常见问详解

嵌入式C语言的高级用法

内存管理 我们需要知道——变量,其实是内存地址的一个抽像名字罢了。在静态编译的程序中,所有的变量名都....
的头像 玩转单片机 发表于 02-20 14:25 143次 阅读
嵌入式C语言的高级用法

Matlab编程中常用的优化技巧

用过Matlab的同学应该都知道,Matlab的慢是出了名的,但是再慢也有优化的方式,下面我们给出几个Matlab编程中常用的优化技巧。...
发表于 02-19 06:40 0次 阅读
Matlab编程中常用的优化技巧

单片机为什么要使用C语言看了就知道

单片机为什么要使用C语言?
发表于 02-19 06:18 0次 阅读
单片机为什么要使用C语言看了就知道

如何用以太网对S7-200 CPU编程

CP243-1模块是S7-200系列产品中唯一一款以太网通信模块,它既可以作为西门子以太网S7通信中....
的头像 电子魔法师 发表于 02-13 16:45 173次 阅读
如何用以太网对S7-200 CPU编程

PLC与电脑的连接方法以及程序的上传、下载方法

如果计算机没有COM接口,可选用FX-USB-AW电缆将计算机与PLC连接起来。在连接时,将电缆的U....
发表于 02-12 18:45 205次 阅读
PLC与电脑的连接方法以及程序的上传、下载方法

6本程序员必看的Linux相关书籍

30年前,在赫尔辛基大学就读计算机科学专业的Linus Torvalds还不知道他创建的Linux会....
的头像 如意 发表于 02-12 16:29 217次 阅读
6本程序员必看的Linux相关书籍

OPC UA的信息模型与统一架构

假设在工业现场有若干台空调需要监控,首先我们需要监视它的温度,湿度,运行状态;其次我们需要对它进行启....
发表于 02-11 17:22 144次 阅读
OPC UA的信息模型与统一架构

STM32中重要的C语言知识点整理

说在前面的话 一位初学单片机的小伙伴让我推荐C语言书籍,因为C语言基础比较差,想把C语言重新学一遍,....
的头像 嵌入式ARM 发表于 02-10 17:31 354次 阅读
STM32中重要的C语言知识点整理

编译链接的套路有哪些?

不知道大家平时编程过程中使用动态链接库的情况多不多,如果一个程序引用了无数个动态链接库,那就有可能引....
的头像 嵌入式ARM 发表于 02-10 10:06 152次 阅读
编译链接的套路有哪些?

电脑读取三菱PLC数据的简单方法

三菱提供了MX Sheet软件,MX Sheet是一种通讯支持软件,无须程序,只通过简单的设置即可使....
发表于 02-09 17:12 216次 阅读
电脑读取三菱PLC数据的简单方法

【紫光同创国产FPGA教程】【第九章】HDMI编程测试实验

HDMI做为视频输出输入接口已经广泛使用很长时间,主要通过TMDS差分编码传输。本实验通过在HDMI....
的头像 FPGA技术专栏 发表于 02-05 13:26 1363次 阅读
【紫光同创国产FPGA教程】【第九章】HDMI编程测试实验

单片机C语言学习架构

单片机C语言学习架构分享
发表于 02-05 07:35 0次 阅读
单片机C语言学习架构

发明Objective-C语言 iOS开发者的祖师爷去世了

发明Objective-C语言 iOS开发者的祖师爷:去世了,ios,编程语言,史蒂夫·乔布斯,程序....
的头像 电子发烧友网工程师 发表于 02-04 16:25 429次 阅读
发明Objective-C语言 iOS开发者的祖师爷去世了

使用单片机C语言程序实现电子秤仿真设计的实例免费下载

本文档的主要内容详细介绍的是使用单片机C语言程序实现电子秤仿真设计的实例免费下载。
发表于 02-04 16:25 117次 阅读
使用单片机C语言程序实现电子秤仿真设计的实例免费下载

C语言开发单片机为啥都是全局变量形式?

全局变量简直就是嵌入式系统的戈兰高地。冲突最激烈的双方是: 1. 做控制的工程师; 2. 做非嵌入式....
发表于 02-04 06:14 39次 阅读
C语言开发单片机为啥都是全局变量形式?

C语言多线程的详细教程资料说明

Windows是一个多任务的系统,如果你使用的是windows 2000及其以上版本,你可以通过任务....
发表于 02-03 17:02 49次 阅读
C语言多线程的详细教程资料说明

云计算正在改变业务的运作方式

在2021年消费电子展会举办期间,行业专家针对组织领导者应该了解有关云计算的当前状态以及未来的发展前....
的头像 电子魔法师 发表于 02-03 14:03 478次 阅读
云计算正在改变业务的运作方式

51单片机C语言常用模块与综合系统设计实例精讲的PDF电子书免费下载

《51单片机C语言常用模块与综合系统设计实例精讲》全书针对目前最通用流行的51单片机系列,通过大量典....
发表于 02-03 10:40 78次 阅读
51单片机C语言常用模块与综合系统设计实例精讲的PDF电子书免费下载

如何在C代码中插入寄存器?

对于逻辑级数较高的路径,常用的方法之一是在其中插入流水寄存器,将路径打断,从而降低逻辑延迟,这在HD....
的头像 Lauren的FPGA 发表于 02-02 17:07 316次 阅读
如何在C代码中插入寄存器?

通过点灯逻辑体验FPGA的编程流程

“点灯”是我们板农们拿到一块板子后第一个要实现的目标,正如软件工程师尝试新的语言必然会先写出“hel....
的头像 FPGA入门到精通 发表于 02-02 17:01 332次 阅读
通过点灯逻辑体验FPGA的编程流程

Verilog数字系统设计教程的PDF电子书免费下载

数字信号处理(DSP)系统的研究人员一直在努力寻找各种优化的算法来解决相关的信号处理问题。当他们产生....
发表于 02-02 16:19 48次 阅读
Verilog数字系统设计教程的PDF电子书免费下载

Python的编程入门学习资料概述

Python是一种简单易学,功能强大的编程语言。它有高效率的高层数据结构,能够简单、有效地实现面向对....
发表于 02-02 14:36 103次 阅读
Python的编程入门学习资料概述

使用单片机C语言实现步进电机正反转的实例免费下载

本文档的主要内容详细介绍的是使用单片机C语言实现步进电机正反转的实例免费下载。
发表于 02-02 11:19 71次 阅读
使用单片机C语言实现步进电机正反转的实例免费下载

使用单片机C语言实现消防车警报的实例程序和工程文件免费下载

本文档的主要内容详细介绍的是使用单片机C语言实现消防车警报的实例程序和工程文件免费下载。
发表于 02-02 10:48 44次 阅读
使用单片机C语言实现消防车警报的实例程序和工程文件免费下载

使用单片机C语言实现步进电机转动原理的实例程序和工程文件免费下载

本文档的主要内容详细介绍的是使用单片机C语言实现步进电机转动原理的实例程序和工程文件免费下载。
发表于 02-02 10:48 64次 阅读
使用单片机C语言实现步进电机转动原理的实例程序和工程文件免费下载

使用单片机C语言实现音乐播放的实例程序和工程文件免费下载

本文档的主要内容详细介绍的是使用单片机C语言实现音乐播放的实例程序和工程文件免费下载。
发表于 02-02 10:48 40次 阅读
使用单片机C语言实现音乐播放的实例程序和工程文件免费下载

从最底层的内存存储空间开始带你了解C语言指针

一、前言 二、变量与指针的本质 三、指针的几个相关概念 四、指向不同数据类型的指针 五、总结 一、前....
的头像 嵌入式ARM 发表于 02-02 10:40 196次 阅读
从最底层的内存存储空间开始带你了解C语言指针

if-else的效率有多低你知道吗?

  首先看一段经典的代码,并统计它的执行时间: // test_predict.cc#include....
的头像 嵌入式ARM 发表于 02-02 10:30 341次 阅读
if-else的效率有多低你知道吗?

STM32中使用快速编程时有哪些需要注意的地方?

在一些新的 STM32 系列中,比如 STM32L4、STM32G0、STM32G4 等,除了 Fl....
的头像 嵌入式ARM 发表于 02-02 10:26 235次 阅读
STM32中使用快速编程时有哪些需要注意的地方?

单片机C语言程序设计实例之使用74HC595控制数码管显示四位数字

本文档的主要内容详细介绍的是单片机C语言程序设计实例之使用串入并出芯片74HC595控制数码管显示四....
发表于 02-01 16:45 78次 阅读
单片机C语言程序设计实例之使用74HC595控制数码管显示四位数字

单片机C语言程序设计实例之双向来回的流水灯

本文档的主要内容详细介绍的是单片机C语言程序设计实例之双向来回的流水灯免费下载。
发表于 02-01 16:45 61次 阅读
单片机C语言程序设计实例之双向来回的流水灯

单片机C语言程序设计实例之带日历时钟及温度显示的电子万年历

本文档的主要内容详细介绍的是单片机C语言程序设计实例之带日历时钟及温度显示的电子万年历程序和工程文件....
发表于 02-01 16:45 54次 阅读
单片机C语言程序设计实例之带日历时钟及温度显示的电子万年历

单片机C语言程序设计实例之闪烁的LED

本文档的主要内容详细介绍的是单片机C语言程序设计实例之闪烁的LED程序和工程文件免费下载。
发表于 02-01 16:45 58次 阅读
单片机C语言程序设计实例之闪烁的LED

编程创造未来,无人机教育激活青少年创造力

随着国家政策的发布,我国编程教育也在不断地发展。早从2015年起,我国的中小学就加大了编程教育的力度....
的头像 创客火无人机 发表于 02-01 10:50 366次 阅读
编程创造未来,无人机教育激活青少年创造力

C51单片机C语言程序设计解析的学习课件免费下载

C语言程序采用函数结构,每个C语言程序由一个或多个函数组成,在这些函数中至少应包含一个主函数main....
发表于 02-01 09:58 66次 阅读
C51单片机C语言程序设计解析的学习课件免费下载

用晶体管编程的机器人设计方案

之前,我在Verilog中实现了它,并在DE0-nano FPGA上对其进行了仿真,以确保所有逻辑都....
的头像 电路设计技能 发表于 01-27 14:12 298次 阅读
用晶体管编程的机器人设计方案

手把手教你学51单片机的C语言版PDF电子书免费下载

本书旨在培养和锻炼单片机系统实用开发技能,全书以实践为主线,让读者在一个个实践案例中逐步掌握单片机电....
发表于 01-27 08:00 153次 阅读
手把手教你学51单片机的C语言版PDF电子书免费下载

使用单片机实现LED循环右移的C语言实例免费下载

  本文档的主要内容详细介绍的是使用单片机实现LED循环右移的C语言实例免费下载。
发表于 01-26 17:23 60次 阅读
使用单片机实现LED循环右移的C语言实例免费下载

使用单片机实现LED循环左移的C语言实例免费下载

本文档的主要内容详细介绍的是使用单片机实现LED循环左移的C语言实例免费下载。
发表于 01-26 17:16 51次 阅读
使用单片机实现LED循环左移的C语言实例免费下载

C语言要如何面向对象编程?

一、前言 在嵌入式开发中,C/C++语言是使用最普及的,在C++11版本之前,它们的语法是比较相似的....
的头像 嵌入式ARM 发表于 01-26 09:58 272次 阅读
C语言要如何面向对象编程?

PLC最全的编程算法详细说明

PLC中无非就是三大量:开关量,模拟量,脉冲量。搞清楚三者之间的关系,你就能熟练的掌握PLC了。
的头像 Wildesbeast 发表于 01-23 10:34 819次 阅读
PLC最全的编程算法详细说明

VHDL硬件描述语言的学习课件免费下载

本文档的主要内容详细介绍的是VHDL硬件描述语言的学习课件免费下载包括了:VHDL概述,VHDL数据....
发表于 01-22 08:00 42次 阅读
VHDL硬件描述语言的学习课件免费下载