これは螺旋階段です。
螺旋階段のアイデアと設計図はリベルさんのところからいただいています。
柱に密着して登ると引っかかるので一部だけ設計を変更していることと、空中に半ブロックや階段ブロックを設置すると方向がおかしくなるために画像中の青いブロックを追加しています。
ことの経緯
この土日は、ComputerCraft1.62の使い心地を確認することも兼ねて、建築プログラムを作成していました。
しかも、これまで手を出していなかった、タートルによる半ブロック・階段の設置にも手を出してみたのです。(だって設置方向考えるのめんd)
これが地獄の始まりでした。僕の心の叫びのダイジェストをどうぞ。
- 階段がさかさまになるんですけど^^;
- 正面に設置しているのに、なんで半ブロック上半分につくのん><
- 空中に設置するときと下にブロックあるときでは挙動違うのか!
- それなら常に下にブロック敷けばいいよね。→ ダメでした。
- 横に半ブロック並べているだけなのに、なんで、一つだけ上半分につくのよ!
- あかん。これはもう建築物の設計自体を変えなくては。
- なぜ、タートルが西向きのときだけ、上半分につくのさ! おかしいでしょ? バグでしょ?これ
- etc.
バグと確信した理由
右回りに1回転しつつ、半ブロックを設置するプログラム
for i=1,4 do turtle.place() turtle.turnRight() end
おかしいケース1
画像の右側が東(EAST)になります。
プログラム実行して、半ブロックを設置した結果。
東側だけ、上半分に設置してくれます。
これは、以下の条件がそろったときに生じます。
- タートルが東を向いている
- 正面に半ブロックを設置(turtle.place())するときに、その下にブロックが無い。つまり空中に半ブロックを設置しようとするとき
おかしいケース2
画像の左側が西(WEST)になります。
プログラム実行して、半ブロックを設置した結果。
西側だけ、上半分に設置してくれます。
これは、以下の条件がそろったときに生じます。
- タートルが西を向いている
- 正面に半ブロックを設置(turtle.place())するときに、その下にブロックがある。
- 正面、1つ間を空けた位置にブロック(画像中赤色のブロック)がすでに存在しており、そのブロックに隣接する形で半ブロックを設置するとき。
CC公式フォーラムに報告してきました。
これ直らないと、半ブロック使った建築プログラムが完成しないし・・・。
これはCC1.62固有のバグなんでしょうか。もしかしたら前のバージョンから残っていたのではないかとうすうす疑っています。試していないので確証はありませんが。
なお、私の螺旋階段プログラムは、西方向の半ブロックがたまに上半分につくということだけ気にしなければ(手作業で直すならば)、完成しています。