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:編程語言 |