0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【數(shù)碼寶貝】里泉光子郎的編程到底處于什么水平

漢中樂博樂博機(jī)器人 ? 來源:漢中樂博樂博機(jī)器人 ? 作者:漢中樂博樂博機(jī)器 ? 2020-11-05 10:52 ? 次閱讀

電影《數(shù)碼寶貝大冒險(xiǎn):最后的進(jìn)化·羈絆》近期開始上映,看到大銀幕里一張張熟悉又陌生的臉,就很容易想起那段熱血沸騰的時(shí)光,樂樂也非常喜歡動(dòng)漫里一個(gè)個(gè)獨(dú)特的角色。

尤其是里面的光子郎,他在團(tuán)隊(duì)中相當(dāng)于軍師的角色,性格冷靜且十分聰明。

這個(gè)小男孩對(duì)所有人都很禮貌(包括父母),會(huì)在稱呼后加上敬語。經(jīng)常背著一臺(tái)仿APPLE的筆記型電腦到處跑的男孩,兒時(shí)雙親卻死于車禍,由父母的遠(yuǎn)房親戚收養(yǎng)。和太一關(guān)系相當(dāng)好,在可能遇到黑暗四天王的攻擊危險(xiǎn)之下,仍然與太一一起出去尋找感冒藥。

其中非常經(jīng)典的一個(gè)情節(jié)就是,最早在檔案島的安杜路獸的工廠中,光子郎通過分析巨大「電池」內(nèi)墻壁上的文字(也就是數(shù)碼文字和一些數(shù)字,還有人類世界的文字)從而描繪出了檔案島的全貌。

然而當(dāng)時(shí)動(dòng)畫給的一個(gè)畫面就是光子郎的屏幕是我們熟悉的【編程】,那《數(shù)碼寶貝》里泉光子郎的編程水平到底有多厲害呢?知乎上有一位大神借此做了解答。

題圖:Random Forest/知乎

怎樣評(píng)價(jià)《數(shù)碼寶貝》第一部中的泉光子郎的編程水平?

答主:Random Forest(2 萬+ 贊同)

受到@夜路川答主勇于用 python 進(jìn)化自己室友的激勵(lì),我順便深挖了一下《數(shù)碼寶貝》第一部第五集中光子郎在電腦上敲出的代碼,終于把原始代碼跑了出來,視頻在最后。

《數(shù)碼寶貝》第一部第五集截圖

雖然這段代碼會(huì)自己亂動(dòng)并讓甲蟲獸進(jìn)化,顯得狂拽酷炫吊炸天,但其實(shí)和第十集出現(xiàn)的代碼是一模一樣的(而動(dòng)畫里表現(xiàn)出的效果明顯不同)。第十集里的代碼反而看得更清楚一點(diǎn)。

《數(shù)碼寶貝》第一部第十集截圖

根據(jù)這張圖抽出文本如下:

100 /* func sample. coast creation */

110 float s

120 while s<1 or s>=2

130 input "ratio 1 to 2";s

140 endwhile

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

160 screen 1,2,1,1

170 s=sqr(s*s-1)

180 float x0=100, x1=412, y0=0, y1=0

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

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

210 end

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

230 float l, r, x2, y2

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

250 if l<2 or sp>=9 then {

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

270 }

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

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

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

310 sp = sp + 1

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

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

340 endfunc

如果想重新原汁原味地運(yùn)行這段代碼,首先要明確它的語言和版本。注意到注釋和變量定義的語法更接近 C 系語言,但還有 endwhile、func、endfunc 等關(guān)鍵字,可以確定這不是 VB 或者其他主流的 BASIC 系語言。

但是代碼行號(hào)的格式暴露了這貨肯定是個(gè)遠(yuǎn)古產(chǎn)物,我本來想看看光子郎電腦上這個(gè)文件的后綴名是什么,瞅了半天發(fā)現(xiàn)是「名稱未設(shè)定 3」(見上圖),失去線索的我只能開始瘋狂的 google……

資料檢索過程中主要發(fā)現(xiàn)兩個(gè)問題。一是和這段代碼語法相近的語言太多,比如 VFP(Visual FoxPro,知道它的人肯定都老了)、VimScript、SAP 采用的 ABAP、早期 PHP、偽代碼的某個(gè)版本[1]、乃至德儀計(jì)算器的自創(chuàng)腳本語言等等。經(jīng)過一個(gè)個(gè)的嘗試,發(fā)現(xiàn)這些語言都是形似神不似,并不是真正的答案。

Google Books 里找到的一本 TI 計(jì)算器手冊(cè)

第二個(gè)問題是,如果仔細(xì)看光子郎的代碼,你一定會(huì)陷入困惑,因?yàn)檫@段代碼根本不像是有一個(gè)統(tǒng)一的語法規(guī)則。這里舉兩個(gè)栗子:

流程控制語法不統(tǒng)一。120-140 行的 while-endwhile 結(jié)構(gòu),或許讓你覺得和 BASIC 有一點(diǎn)點(diǎn)類似,而且順便猜測(cè) if 語句肯定也會(huì)有個(gè) endif 結(jié)尾。但是 250-270 行的 if 語句居然用了大括號(hào),更喪心病狂的是在 then 后面接大括號(hào)!

變量聲明格式不統(tǒng)一。110 行是類 C 的聲明格式,而 220 行的函數(shù)參數(shù)卻用了類似 ECMAScript 的聲明方式,但用的不是冒號(hào)是分號(hào)。這讓我一度以為這段代碼就是導(dǎo)演魔改的,是一種不存在的噩夢(mèng)般的語言。

然而,在我就要放棄之際,一位國外先行者的博文給了我曙光(盡管文章里有一些錯(cuò)誤)[2]。這個(gè)語言最終還是被查出來了…… 事情要追溯到 1987 年,夏普發(fā)布了一款型號(hào)為 X68000 的 PC。作為那個(gè)年代的電腦,搭載了 10MHz 的摩托羅拉 68000CPU,1MB 的內(nèi)存,沒有硬盤,且只在日本發(fā)售[3]。其操作系統(tǒng)是夏普為這一系列電腦專門設(shè)計(jì)的 Human68k,《數(shù)碼寶貝》中的那段代碼,就屬于這個(gè)操作系統(tǒng)專有的編程語言 X-BASIC[4]。

Sharp X68000ACE-HD

X-BASIC 手冊(cè)

日本維基上 X-BASIC 的一段例程 這個(gè)系列的最后一款電腦在 1993 年發(fā)布(配置有所增強(qiáng)),而《數(shù)碼寶貝》第一部是在 1999 年放映的,可見在動(dòng)畫制作時(shí)期,光子郎的代碼也不算特別陳舊。 為了實(shí)際地跑一下這段代碼,又經(jīng)過一番艱辛的努力,我搞到了 X68000 的模擬器,還有操作系統(tǒng) Human68k(version 3.02)的磁盤映像,現(xiàn)在還能找到這些東西,真的要感謝極客阿宅們的默默奉獻(xiàn)。 在模擬器里一開機(jī),感覺就成功了一半:

為了能使代碼順利運(yùn)行,還需加載 SX-WINDOW 映像。最后終于找到 X-BASIC,一字不差地鍵入了光子郎的代碼:

執(zhí)行 run 命令,按代碼要求輸入一個(gè) 1 到 2 之間的浮點(diǎn)數(shù)值,下面就是見證奇跡的時(shí)刻了! 運(yùn)行《數(shù)碼寶貝》光子郎寫的代碼:

我不禁望向窗外的那只放屁蟲,它仍在很悠閑地曬太陽,很遺憾我的甲蟲獸并沒有進(jìn)化……原因很簡(jiǎn)單,這真的只是一段隨機(jī)生成「coast」輪廓的代碼。初始輸入是一個(gè)閾值,從視頻里看,顯然閾值越高「海岸」越險(xiǎn)峻,閾值越低「海岸」越平滑,很有可能是摘取了當(dāng)時(shí)哪個(gè)游戲里地圖生成器的一段源碼。所以,導(dǎo)演又糊弄事呢? 最后話說回光子郎的編程水平,這段代碼的難點(diǎn)主要在于用遞歸實(shí)現(xiàn)了分形圖形的繪制,雖然沒什么特別神秘的地方,但還是需要一定程度的編程技能和數(shù)學(xué)知識(shí)。原理上很像我之前繪制謝爾賓斯基三角形的代碼。 但是光子郎當(dāng)時(shí)好像上小學(xué)四年級(jí)?

而且在動(dòng)畫里,這段程序的輸出是這樣的,光子郎最后靠這個(gè)成功還原了他和美美所在的迷宮。

嘛,單從這里看,感覺能進(jìn)科大少年班就是了…… 彩蛋:當(dāng)年 X68000 系列的電腦還隨附一個(gè)名為 060turbo[5]的軟件,單獨(dú)裝在一個(gè)磁盤。這個(gè)軟件的唯一功能是在屏幕上隨機(jī)打印一張復(fù)雜的分形圖形(疑似 Mandelbrot 圖像?并不是很確定)。我用模擬器試了一下,效果確實(shí)驚艷,感覺光子郎在成為分形大師的路上還需努力 23333。

參考 1. ^Pseudocode Examples https://www.unf.edu/~broggio/cop3530/3530pseu.htm 2. ^Running Izzy's "Digivolving" code https://digitalworldproblems.tumblr.com/post/76036641581/while-im-looking-at-that-moviecode-post-he 3. ^X68000 https://en.wikipedia.org/wiki/X68000 4. ^X-BASIC https://ja.wikipedia.org/wiki/X-BASIC 5. ^060turbo の添付ディスク http://retropc.net/x68000/software/hardware/060turbo/disk060t/

責(zé)任編輯:xj

原文標(biāo)題:《數(shù)碼寶貝》里泉光子郎的編程水平到底有多厲害?

文章出處:【微信公眾號(hào):漢中樂博樂博機(jī)器人】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7594

    瀏覽量

    135862
  • 編程
    +關(guān)注

    關(guān)注

    88

    文章

    3565

    瀏覽量

    93536
  • 程序員
    +關(guān)注

    關(guān)注

    4

    文章

    949

    瀏覽量

    29744

原文標(biāo)題:《數(shù)碼寶貝》里泉光子郎的編程水平到底有多厲害?

文章出處:【微信號(hào):lebo13992672467,微信公眾號(hào):漢中樂博樂博機(jī)器人】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    什么是光子學(xué)?

    ? 本文概述了光子學(xué),包括其基本原理、關(guān)鍵技術(shù)、應(yīng)用和新興趨勢(shì)。 一、光子學(xué)的基本原理 光子學(xué)是一門研究光和其他形式輻射能的學(xué)科。它涉及使用光學(xué)元件、激光、光纖和電子光學(xué)儀器來產(chǎn)生、操縱和檢測(cè)光。它
    的頭像 發(fā)表于 10-29 06:21 ?88次閱讀

    編程的超快納米光子光譜像素矩陣

    matrix of spectral pixels ”( 耐用且可編程的超快納米光子光譜像素矩陣)的研究論文。該工作提出了一種可編程光譜像素矩陣,其由像素化微加熱器上的相變材料二氧化釩腔組成,單個(gè)
    的頭像 發(fā)表于 10-09 06:30 ?144次閱讀
    可<b class='flag-5'>編程</b>的超快納米<b class='flag-5'>光子</b>光譜像素矩陣

    數(shù)碼管顯示屏的靜態(tài)顯示編程是什么

    數(shù)碼管顯示屏的靜態(tài)顯示編程是一種簡(jiǎn)單的顯示方式,它指的是在任意時(shí)刻,數(shù)碼管上的所有段(a, b, c, d, e, f, g, dp等,具體取決于數(shù)碼管的類型)要么全部被點(diǎn)亮以顯示某個(gè)
    的頭像 發(fā)表于 08-28 17:14 ?415次閱讀

    光通信時(shí)代的引領(lǐng)者:光子晶體光纖

    摘要光子晶體光纖(photoniccrystalfiber,簡(jiǎn)稱PCF),又被稱為多孔或微結(jié)構(gòu)光纖。光子晶體光纖是一種新型光纖結(jié)構(gòu),利用光子晶體的周期性結(jié)構(gòu)來控制和引導(dǎo)光信號(hào)的傳輸。光子
    的頭像 發(fā)表于 07-26 08:16 ?1405次閱讀
    光通信時(shí)代的引領(lǐng)者:<b class='flag-5'>光子</b>晶體光纖

    新材擬3500萬美元在越南投建散熱產(chǎn)品項(xiàng)目

    新材發(fā)布公告稱同意公司通過下屬全資子公司香港思新材有限公司出資設(shè)立全資孫公司越南思新材有限公司并投資建設(shè)散熱產(chǎn)品項(xiàng)目,計(jì)劃投資總額為3500萬美元,用于購買土地、廠房建設(shè)與裝修、購建固定資產(chǎn)、運(yùn)營資金等。
    的頭像 發(fā)表于 05-17 11:21 ?474次閱讀

    什么是單光子探測(cè)器

    ? 單光子探測(cè)器(SPD)是一種超低噪聲器件,增強(qiáng)的靈敏度使其能夠探測(cè)到光的小能量量子——光子。單光子探測(cè)器可以對(duì)單個(gè)光子進(jìn)行探測(cè)和計(jì)數(shù),在許多可獲得的信號(hào)強(qiáng)度僅為幾個(gè)
    的頭像 發(fā)表于 03-29 06:34 ?601次閱讀

    光子集成芯片和光子集成技術(shù)的區(qū)別

    光子集成芯片和光子集成技術(shù)雖然緊密相關(guān),但它們?cè)诙x和應(yīng)用上存在一些區(qū)別。
    的頭像 發(fā)表于 03-25 14:45 ?713次閱讀

    光子集成芯片和光子集成技術(shù)是什么

    光子集成芯片和光子集成技術(shù)是光子學(xué)領(lǐng)域的重要概念,它們代表了光子在集成電路領(lǐng)域的應(yīng)用和發(fā)展。
    的頭像 發(fā)表于 03-25 14:17 ?915次閱讀

    光子集成芯片是什么

    光子集成芯片,也稱為光子芯片或光子集成電路,是一種將光子器件小型化并集成在特殊襯底材料上的技術(shù)。這些特殊的光子器件,如光柵、耦合器、光開關(guān)、
    的頭像 發(fā)表于 03-22 16:51 ?1064次閱讀

    簡(jiǎn)單認(rèn)識(shí)微波光子集成芯片和硅基光子集成芯片

    微波光子集成芯片是一種新型的集成光電子器件,它將微波信號(hào)和光信號(hào)在同一芯片上進(jìn)行處理和傳輸。這種芯片的基本原理是利用光子器件和微波器件的相互作用來實(shí)現(xiàn)信號(hào)的傳輸和處理。光子器件通常由光源、光調(diào)制器
    的頭像 發(fā)表于 03-20 16:11 ?771次閱讀

    簡(jiǎn)儀科技紫外光子成像技術(shù)應(yīng)用

    在面對(duì)紫外光子成像技術(shù)時(shí),面臨著諸多挑戰(zhàn)。光子密度大、需要高頻觸發(fā)采集,以及實(shí)時(shí)計(jì)算光子位置進(jìn)行譜圖繪制,這些都對(duì)采集設(shè)備的性能提出了極高的要求。
    的頭像 發(fā)表于 03-20 09:56 ?503次閱讀
    簡(jiǎn)儀科技紫外<b class='flag-5'>光子</b>成像技術(shù)應(yīng)用

    光子成像技術(shù)原理及優(yōu)勢(shì)分析

    光子激發(fā)是指在具有高光子密度的入射光激發(fā)下,處于基態(tài)的分子/原子同時(shí)吸收多個(gè)光子后躍遷到激發(fā)態(tài),經(jīng)過弛豫過程躍遷到亞穩(wěn)態(tài),最后自發(fā)輻射回到基態(tài),釋放出頻率略小于多倍入射光頻率的熒光
    的頭像 發(fā)表于 03-19 16:51 ?1130次閱讀
    多<b class='flag-5'>光子</b>成像技術(shù)原理及優(yōu)勢(shì)分析

    利用多功能超構(gòu)透鏡變革固態(tài)單光子源研究

    量子光子學(xué)是量子領(lǐng)域的重要研究方向之一,它利用了光在量子水平的獨(dú)特特性。
    的頭像 發(fā)表于 02-23 10:50 ?665次閱讀
    利用多功能超構(gòu)透鏡變革固態(tài)單<b class='flag-5'>光子</b>源研究

    電子和光子的定義、含義和區(qū)別

    光子和電子是兩種基本的量子力學(xué)粒子,但它們具有完全不同的性質(zhì)。光子是一-種作為 能量載體的基本粒子,但電子是- -種亞原子粒子,存在于所有原子中。我們將了解電子和光子的定義、含義和區(qū)別。
    的頭像 發(fā)表于 12-01 10:28 ?2581次閱讀
    電子和<b class='flag-5'>光子</b>的定義、含義和區(qū)別

    光子芯片簡(jiǎn)介

    光子芯片,這是一種依托光子學(xué)的集成電路,它將光子器件集成在芯片上 實(shí)現(xiàn) 光電子的集成。相較于傳統(tǒng)的電子芯片,光子芯片在數(shù)據(jù)傳輸速度、能耗以及帶寬方面都有著顯著的優(yōu)勢(shì)。
    的頭像 發(fā)表于 11-15 17:41 ?2667次閱讀