標籤:

MarioLANG詳解

MarioLANG詳解

來自專欄編程語言專欄

簡直就是玩遊戲


在打編程的時候,你媽媽突然衝進來,大喊:

「又在玩遊戲了?」

你瞬間反駁:

「我在打MarioLANG啊」

你媽媽瞬間無語


這個語言非常個性

結合了Brainfuck的核心代碼和超級瑪麗的經典動作

二話不說,開始吧!


首先認識一下超級瑪麗的背景

= 我是一塊地| 我是一堵牆# 我是個電梯入口,只要瑪麗奧在我上面,我就能運上/下,但,如果有兩個電梯出口,我會炸掉" 我負責接送電梯中的瑪麗奧,注意,在電梯上不能走動

就像

==== === """================= = = ========= = # = =### ======"

ng

well

接下來就是瑪麗的動作啦

首先

只要馬里奧沒踩到東西

就會掉下去

直到摔倒地上或摔死

之後便是

> : 往右走< : 往左走^ : 跳一格! : 別走了[ : 只要當前內存指向0就接著走@ : 往回走

等等

當前內存?


當然

這是一個編程

就需要內存的配合

假設有一個無限長的數組,有一個指針指著

) : 指針向右挪一格( : 指針向左挪一格+ : 指針指向的內存+1- : 指針指向內存-1. : 以ASCII形式輸出當前內存: : 以值的形式輸出當前內存, : 以字元形式讀入到當前內存; : 以值的形式讀入到當前內存

這些都是等馬里奧碰到了才實施


練習一下?

++++: > > +:+:+:+:+:+:+:::::====+ >^=== """================= +:-):(:^= = ! ========= = # = ! .+.,:-< =### ======"

來來來

首先

馬里奧往右走,碰到四個+,現在儲存為 |0|4|0|

//當前內存永遠放在中間

之後,下落,先輸出4後加上了2,即|0|6|0|

往右走,輸出6,減1,內存往右移一格,變成|5|0|0|

輸出0後挪回來輸出5,即|0|5|0|

之後上個樓梯,下個樓梯,到了!時,自己不能動了,但有電梯啊

之後,電梯上升,到了"時,馬里奧碰到了>又能往右走了

之後就是一大堆+和:,現在是

輸出6 0 5 6 7 8 9 10 11 12 12 12 12 12

內存|0|12|0|

之後下落,順著電梯下去之後往左

輸出11,此時,等待你的輸入

輸入後輸出ASCII碼,加一再輸出一次

於是,掉下去,摔死了

GAME OVER !

推薦閱讀:

紀念我HooK逝世的青春--XIgnCode3.TP.NP.HS.PP.GPK
Top分析/編程/ML工具,大家pick了誰? | KDnuggets2018年度調查
讓你長見識:編程語言簡史
TIOBE編程語言排行榜解析2018-05
關於Code::Blocks的某些問題?

TAG:編程語言 |