メモリで見るバグ解説


バグが起こっている時のメモリの状態を解説します。
ちなみにメモリ上ではレンガやはしごなどは数字で表されています。

数字 00 01 02 03 04 05 06 07 08 09
表すもの ×

ロボットやランナーも数字でかかれていて、09の地点に08が行くと死にます。

 こんな感じ。

00 00 00 00 00 00 00
00 00 00 09 00 00 00
00 00 01 03 00 00 00
00 00 01 03 00 00 00
00 02 02 02 02 02 00
00 00 00 00 00 00 00


↑ランナーが動くとこの「09」がちょろちょろと動きます。動くと09だった場所はもとのオブジェクトにもどります。
はしごをおりるとそのはしごは「03」から「09」になるけど、ランナーがさらに移動すると「09」から「03」に戻ります。

無敵(はしご無敵)
レンガ無効化(素通しレンガ)
ゴーストランナー
ロボットが地下に復活

無敵

00 00 00 00 00 00 00
00 02 02 03 02 02 02
02 00 00 08 00 00 00
00 00 00 03 00 00 00
00 00 00 03 00 00 00


はしごを降りたり、普通につかまっている時ははしごの03を上書きしてそこが09になるのですが、
はしごを登って停止するとどういうわけかそこが03のままです(青字で03のところ)。
動くと一瞬09になってまた03になるようです。


レンガ無効化

00 00 00 00 00 00
00 00 03 00 00 00
02 02 02 03 00 00
00 00 00 02 02 02
00 00 00 00 00 00


普通、レンガを掘ると01から00になり、再生するとそこを「01」に書き換えます。
この時「09」(ランナー)を「01」に上書きしようとすると死ぬのですが、
上記の無敵をしている時、ランナーの地点は09ではありせん。00のままです。
掘った場所が直るとこの0001になります。
その後ランナーが別の場所に移動した時、ランナーがいた場所は00に書き換えられます。

操作 レンガを掘る 掘ったところにいく 降りる 登る(無敵) レンガ治る ランナー移動
グリーンの場所 01→00 00→09 09→00 00→00 00→01 01→00

※結果的に、これは掘ったレンガと同じ状態になります。


ゴーストランナー



00 00 00 00 00 00 00 00 00 00 00
00 00 09 00 00 09 00 08 00 00 00
00 02 02 02 02 02 02 02 02 02 00


みえませんが、メモリ上にはランナーが存在していることになっています。
ランナーがゴースト側の09の地点に行って別の場所に移動するとそこは00になります。


ロボットが地下に復活

これは解説が困難になるのでわからなかったら読み飛ばしてください。


(注意:下で復活したロボットが右に2マス移動した状態のメモリの様子です!←スクショ取り遅れた)
000406に08と書かれているのがわかるでしょうか。
マップが書いてあるメモリは2か所(000200からと000400から)にあってそれぞれ役割があって分かれているのですが、通常は000400からのほうにはロボット(08)やランナー(09)は書かれず、レンガを掘っても00になりません。レンガなどを元の状態に戻すための情報が記憶されている場所です。
ロボットが最下段のコンクリ内に復活した場合、そこの最上段に迷い込んだものとしてメモリに書かれていました。
たとえばランナーがはしごと重なった後そのはしごが09から03に戻るのはこの000400からのメモリを参照しているからです。そこに08がある場合、ランナーが移動すると09から08になるという現象が起きます。08の地点はランナーは通れますがロボットは別のロボットと重なるのをいやがって通過できなくなります。「停滞」のムービーを見た人は解るでしょうが、この面は上まで伸びているはしご2つのうち左側のはしごのうえにこの「08」をおくことによってロボットの移動を制限する、という面でした。って説明聞いてもわけわかんないよね、きっと

↓襲ってこないロボット。メモリ上ではロボットの左に見えないロボットがいることになっている。





000200からと000400からでは3ヶ所違いがある。それぞれ09,08が00になっている。
ちなみに08が09の地点に行くと死ぬけど、09が08の地点に行っても死なない。


戻る