《數碼寶貝》裡泉光子郎的編程水平到底有多厲害?

2021-02-18 ROBOROBO廣州

電影《數碼寶貝大冒險:最後的進化·羈絆》前段時間已經上映,看到大銀幕裡一張張熟悉又陌生的臉,就很容易想起那段熱血沸騰的時光,樂樂也非常喜歡動漫裡一個個獨特的角色。

尤其是裡面的光子郎,他在團隊中相當於軍師的角色,性格冷靜且十分聰明。

這個小男孩對所有人都很禮貌(包括父母),會在稱呼後加上敬語。經常背著一臺仿APPLE的筆記型電腦到處跑的男孩,兒時雙親卻死於車禍,由父母的遠房親戚收養。和太一關係相當好,在可能遇到黑暗四天王的攻擊危險之下,仍然與太一一起出去尋找感冒藥。

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

然而當時動畫給的一個畫面就是光子郎的屏幕是我們熟悉的【編程】,那《數碼寶貝》裡泉光子郎的編程水平到底有多厲害呢?知乎上有一位大神藉此做了解答。

題圖:Random Forest/知乎

怎樣評價《數碼寶貝》第一部中的泉光子郎的編程水平?

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

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

《數碼寶貝》第一部第五集截圖

雖然這段代碼會自己亂動並讓甲蟲獸進化,顯得狂拽酷炫吊炸天,但其實和第十集出現的代碼是一模一樣的(而動畫裡表現出的效果明顯不同)。第十集裡的代碼反而看得更清楚一點。

《數碼寶貝》第一部第十集截圖

根據這張圖抽出文本如下:

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

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

但是代碼行號的格式暴露了這貨肯定是個遠古產物,我本來想看看光子郎電腦上這個文件的後綴名是什麼,瞅了半天發現是「名稱未設定 3」(見上圖),失去線索的我只能開始瘋狂的 google……

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

Google Books 裡找到的一本 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]。這個系列的最後一款電腦在 1993 年發布(配置有所增強),而《數碼寶貝》第一部是在 1999 年放映的,可見在動畫製作時期,光子郎的代碼也不算特別陳舊。為了實際地跑一下這段代碼,又經過一番艱辛的努力,我搞到了 X68000 的模擬器,還有作業系統 Human68k(version 3.02)的磁碟映像,現在還能找到這些東西,真的要感謝極客阿宅們的默默奉獻。為了能使代碼順利運行,還需加載 SX-WINDOW 映像。最後終於找到 X-BASIC,一字不差地鍵入了光子郎的代碼:執行 run 命令,按代碼要求輸入一個 1 到 2 之間的浮點數值,下面就是見證奇蹟的時刻了!我不禁望向窗外的那隻放屁蟲,它仍在很悠閒地曬太陽,很遺憾我的甲蟲獸並沒有進化……原因很簡單,這真的只是一段隨機生成「coast」輪廓的代碼。初始輸入是一個閾值,從視頻裡看,顯然閾值越高「海岸」越險峻,閾值越低「海岸」越平滑,很有可能是摘取了當時哪個遊戲裡地圖生成器的一段源碼。所以,導演又糊弄事呢?最後話說回光子郎的編程水平,這段代碼的難點主要在於用遞歸實現了分形圖形的繪製,雖然沒什麼特別神秘的地方,但還是需要一定程度的編程技能和數學知識。原理上很像我之前繪製謝爾賓斯基三角形的代碼。而且在動畫裡,這段程序的輸出是這樣的,光子郎最後靠這個成功還原了他和美美所在的迷宮。彩蛋:當年 X68000 系列的電腦還隨附一個名為 060turbo[5]的軟體,單獨裝在一個磁碟。這個軟體的唯一功能是在屏幕上隨機列印一張複雜的分形圖形(疑似 Mandelbrot 圖像?並不是很確定)。我用模擬器試了一下,效果確實驚豔,感覺光子郎在成為分形大師的路上還需努力 23333。1. ^Pseudocode Examples https://www.unf.edu/~broggio/cop3530/3530pseu.htm2. ^Running Izzy's "Digivolving" code https://digitalworldproblems.tumblr.com/post/76036641581/while-im-looking-at-that-moviecode-post-he3. ^X68000 https://en.wikipedia.org/wiki/X680004. ^X-BASIC https://ja.wikipedia.org/wiki/X-BASIC5. ^060turbo の添付ディスク http://retropc.net/x68000/software/hardware/060turbo/disk060t/電影《數碼寶貝大冒險:最後的進化·羈絆》已經上映,又一個陪伴我們長大的童年故事宣告完結。我們與數碼寶貝就像相識多年的摯友,我們的羈絆不管跨越多少距離與歲月都不會磨滅。

A股上市的幼少兒機器人編程教育機構

國內12年教育經驗,國內500家校區

課程模式上線、線下相結合

免費試聽掃碼預約

樂博樂博一直堅持

做最有溫度的素質教育機構

你想學習探索編程的嗎?

你想近距離的觀察機器人嗎?

你想親手實操搭建機器人嗎?

你想和小夥伴們一起分享快樂與知識

廣州樂博樂博各校區地址、電話:

天河區:

①華景校區:
地址:天河區中山大道西140號華港商務大廈西塔1216(華景新城站 )
電話:020-82689445 13602419403

②華晟校區:
地址:天河區五山路1號華晟大廈1704-1705室(崗頂站 )
電話:020-38094671

越秀區:

③羊城校區:
地址:越秀區東風東路733號羊城同創匯印刷樓二樓扶梯旁(東風東路 或區莊站 )

電話:020-37615110 18578757372

白雲區:

④飛翔校區:
地址:白雲區雲城東路景泰創展中心B棟326室(飛翔公園站 )
電話:020-31526574

海珠區:

⑤海悅校區:
地址:海珠區翠寶路184號海悅廣場3層(寶崗大道站)

電話:020-89625313

⑥縱橫校區:

地址:海珠區新港中路456號縱橫廣場二樓B217、218室(赤崗站 )

電話:020-34328225

番禺區:

⑦市橋校區:
地址:捷進二路18號宇弘廣場2樓202室(市橋站 )

電話:020-85821641

荔灣區:

⑧富邦校區:
地址:中山七路65號富邦中心寫字樓6樓601- 604室(西門口站)

電話:020-86536107

聯繫方式:lianyinan@roborobo.cn

更多內容請關注微信公眾號平臺:ROBOROBO廣州 ID:gh_5b3658faa573

本文僅做分享,如有侵權聯繫刪除。

相關焦點

  • 數碼寶貝第1集:光子郎登場就開掛,太一手撕敵人
    要是問起2020年最受期待的四月新番是哪一部,那答案無疑是數碼寶貝第一部的重製版動畫,畢竟「數碼寶貝」這四個字承載了無數人的青春,被這部動畫陪伴長大的孩子現在可能都已經有了自己的孩子。與原版故事不同的是,重製版第1集並不是「露營事件」,登場的角色也很少,進入數碼世界並碰到數碼寶貝的只有太一和結尾的大和,而同樣戲份比較重要的光子郎,在第1集則還沒進入數碼世界。
  • 新數碼寶貝:光子郎失去靈魂,暴龍獸慘遭削弱
    新數碼寶貝的故事在第14集中迎來了光子郎和其搭檔甲蟲獸的超進化回合,儘管這集動畫經費略顯貧窮,戰力系統也出現了微小的崩壞,但依然是非常精彩的一集,因為該集和暴龍獸超進化回一樣,滿足了讀者們的「宿敵戰」願望,讓獨角仙獸和鍬形蟲獸打了一架,下面我們就來簡析一下該集內容。
  • 數碼寶貝:11年後誰混得最好?太一兼職,光子郎成了老總
    《數碼寶貝》這部動畫是很多漫迷的童年回憶,當初看到太一與夥伴們獲得數碼獸,也期待自己擁有;然而隨著時間流逝,不僅我們成長了,《數碼寶貝》裡的孩子們也都逐漸長大,那麼未來的他們會變成什麼樣,有什麼工作呢?
  • 新數碼寶貝第7集:悲壯!奧加獸犧牲,光子郎終於來到數碼世界!
    新數碼寶貝第7集的故事已經落下了帷幕,本集的故事可謂是十分精彩,甚至有一點悲壯的感覺,尤其是奧加獸(惡鬼獸)因為保護亞古獸犧牲的一刻
  • 《數碼寶貝》:太一危在旦夕,光子郎四人顯神威
    話說《數碼寶貝》新動畫開播以來從最開始好評如潮到現在的爭議不斷,算是一部年番的動畫的正常現象,畢竟是原創劇本在個別階段中很難保證劇本的完全受到歡迎。那麼話說回來新動畫已經播放到了26話,上個篇章中已經擊敗了第一個篇章的BOSS惡魔獸,接下來應該要進入第二個篇章的故事了。
  • 數碼寶貝第6集三大細節:飛呀飛,飛了三集,光子郎還在路上!
    數碼寶貝第6集的故事已經落下了帷幕,作為小公主的美美,與巴魯獸在這裡登場亮相!純真的徽章,讓仙人掌獸實力爆發,帥氣的飛拳,也讓小夥伴們十分高興!除此之外,本集的故事也有很多精彩細節,下面就讓小欣為大家介紹一下吧!
  • 【資訊】《數碼寶貝大冒險tri.》新公開!孩子們的全身圖超級有愛~
    自從《數碼寶貝大冒險tri.》劇場版公開人設圖以來就引起了很多討論,甚至還有人發起修改人設的連署。想必製作組的壓力也不小。
  • 你知道數碼寶貝1裡,每個角色代表的意義嗎?
    不知道大家是否還記得兒時放學跑回家守在電視機旁邊等著《數碼寶貝》更新的日子,哈哈,那段時間可是讓我們記憶深刻呢,這麼多年過去了,不知道大家是否還記得那些被選召的孩子們,還有他們的數碼寶貝們的故事,下面,就讓小編帶大家重溫一下經典之作吧!
  • 數碼寶貝:孩子們的數碼寶貝成熟期實力排名,大家看是否合理
    數碼寶貝可以說是陪伴著一大批90後成長的日漫了。其中有很多讓我們記憶猶新的畫面。今天小編和大家來聊聊這些被選中的孩子的數碼寶貝成熟期的實力排名。看看和你心中的是否一致!1.天使獸作為最後一個才進化為成熟期的數碼寶貝,成功打敗惡魔獸。
  • 數碼寶貝新劇場版全人設公布,童年的那些記憶終於回來了!
    上次介紹了數碼寶貝20周年的新劇場版雜誌公布的人設。但是由於雜誌拍的,所以不太清晰,而現在官方正式發布了所有角色的人設,讓我們來一睹為快吧。武之內空(素娜)愛心徽章的持有者,與太一是青梅竹馬,是個活潑的女孩,從新作發布的人設來看對比於Tri的變化,成為了一個文靜女孩(很明顯新作的好看多對吧!),在劇場版《我們的戰爭遊戲》與太一有小小的感情發展,到了第二部的結尾與石田大和結婚。泉光子郎(光子郎)知識徽章的持有者,團隊的大腦之一,擁有著可以媲美超級計算機的手提電腦。
  • 數碼寶貝最好的結局,被選召孩子們的最終歸宿,你更喜歡哪種呢?
    數碼寶貝可以說是80後和90後們童年的經典動畫作品,而給我們印象最深刻的就應該是前兩部作品,畢竟這兩部作品是有機會在電視機上看到的,而在這兩部作品中
  • 《數碼寶貝》新TV動畫第三彈預告賞!聲優陣容公布
    《數碼寶貝大冒險》新TV動畫《數碼寶貝大冒險:Ψ》近日公布第三彈PV預告片和聲優陣容,讓我們一起來看看吧!《數碼寶貝大冒險:Ψ》新TV動畫的主角聲優陣容現已正式公布,八神太一的配音由三瓶由布子擔任,石田大和的配音由浪川大輔擔任,武之內空的配音由白石涼子擔任,泉光子郎的配音由小林由美子擔任,太刀川美美的配音由高野麻裡佳擔任,城戶丈的配音由草尾毅擔任,高石嶽的配音由潘惠美擔任,八神光的配音由和多田美咲擔任。另外數碼寶貝們的配音將由原《數碼寶貝大冒險》的對應聲優繼續擔任。
  • 數碼寶貝:成為大人了,就不能在一起了嗎?我們想要永遠在一起
    為什麼要從小孩子們中選出數碼寶貝的排擋呢?那是因為孩子們充滿了無限的可能,有通向未來無限的的選擇,他們通過選擇獲得成長,在選擇和可能性並存的時候,會產生無窮的力量,這就是數碼寶貝的能量來源。但這時,太一他們已經長大了,他們以不再是小孩子了,他們之間產生的能量已經不足以支撐數碼寶貝的進化。太一拿出自己的數碼寶貝機器,發現上面有著一圈金色的圓環。
  • 《數碼寶貝:最後的進化》#太一 你長大了呢#
    我依然記得你們的名字該劇場版動畫是超人氣動畫作品《數碼寶貝》的第20周年紀念作品講述的故事背景設定在2010年在全世界再次掀起異變之前已經成為了大學生的八神太一(22歲)等人再次集結從1999年夏天開始的漫長冒險之旅終於要到結束的時候了這是太一等人與亞古獸等數碼寶貝最後的大冒險物語
  • 沒了儀式感的《數碼寶貝:》,還談什麼回憶和成長?
    1999年,那是一個數碼技術還不那麼發達的年代,卻誕生了一部理念很超前的動畫片——《數碼寶貝》。它是由東映動畫根據同名電子遊戲改編的TV動畫劇,講述了太一、阿和、素娜、光子郎、美美、阿助、阿武、嘉兒八個孩子意外進入了數碼世界,在數碼寶貝的陪伴下展開的奇幻冒險故事。
  • 二十一年後,我又看懂了一次《數碼寶貝》
    2019年是《數碼寶貝》二十周年,官方發布了新作預告,並預計在2020年2月21日上映電影版,2020年4月1日重啟以八神太一等人為主角的《數碼寶貝大冒險》新作。電影版本有望引進國內,但目前疫情的形勢使得電影院開放都成為難題。我窩在老家,在極喪的網絡氛圍中重溫了這一部經典。這部作品究竟在討論什麼?十幾歲的我看到夢想和熱血,二十三歲的我讀出教育與成長。
  • 《數碼寶貝:最後的進化》我真的很希望有續作
    首先開場有人打了一些字,說明了為啥數碼寶貝的夥伴都是小孩子,因為小孩子擁有無限的可能,能夠讓數碼寶貝進化,同樣數碼寶貝作為小孩子的同伴能夠讓小孩子成長。不久後,出現了大規模的昏迷現象,此時出現了一個新角色,這人是個教授,她指出昏迷的人是被數據化,都是有數碼寶貝的,而且他們的數碼寶貝都不見了。而這一切的幕後是一隻數碼寶貝,名為 厄俄斯獸 在作怪,他能夠收集人類的記憶。
  • 數碼寶貝即將上映,最後的進化之後,主角團的結局是什麼樣的?
    《數碼寶貝》系列動畫作品應該是很多人的童年回憶,不知不覺,距離初代《數碼寶貝》上映到現在已經20周年了,而這部動畫片也伴隨著我們從懵懂無知一直走向社會
  • 《數碼寶貝tri》第3集小吐槽(下)
    電腦還是一周前的重置界面,估計光子郎有一周沒碰電腦了,心疼。哈哈哈,數碼世界物資奇缺,一個哨子也是寶貝。《數碼寶貝大冒險tri》第四章【喪失】,將於2017年2月24號上映,(圖片來自於微博)然後是一點批評。
  • 《數碼寶貝:》20年後 數碼寶貝世界如何與時俱進
    20年後重新看數碼寶貝,不僅僅被他們美好的心和與數碼寶貝之間的羈絆感動,也被數碼寶貝世界的設定下了一大跳。數碼寶貝有三條吸引觀眾的線。一條是孩子們因為徽章變得成熟,成為更好的自己的線。一條是孩子們與數碼寶貝之間沒有種族差異,相信彼此並肩戰鬥的線。一條是數碼寶貝世界為何存在,遭到誰的破壞,為什麼與人類世界可以互通的線。