はじめに
さて、新連載です。
Twitterで面白いアイデアをいくつもいただいたので、これからしばらく、「整地」をテーマにいろいろなプログラムを考えていきましょう。
奥行き、幅、高さを指定して直方体領域内のブロックを削る
奥行き、幅だけを指定して、丘や山を削る
整地の種類
まずは、整地の種類を分類します。
整地とは、建物などの建設のために土地の凸凹をなくして平らにすることです。
平らにしたい高度を基準として、そこよりも、
- 上側に出ている丘や山を削る。ここでは「切土」と呼びます。
- 下側にあるくぼみにブロックを設置する。ここでは「盛土」と呼びます。
「盛土」は、くぼみの空間全てにブロックを設置することを想定していますが、下側の整地のためには次のような方法も考えられます。
- 深さ2以上は無視して床にブロックを敷くことがあります。ここではこれを「床張」と呼びます。
- 砂や砂利の自然落下を利用して穴や水源(場合によっては溶岩湖)を埋めることがあります。ここではこれを「埋立」と呼びます。
この連載では、タートルを設置した高さを基準高度として、広い平らな土地を作る(整地する)プログラムを検討する予定です。
まず最初に、「切土」「盛土」「床張」「埋立」をそれぞれ別プログラムとして作成します。
その中でも「切土」と「床張」、あるいは「切土」と「盛土」は同時に作業してくれると便利なので、最終的にそれぞれ一つのプログラムへと統合しましょう。
「埋立」は、使うブロックの数から考えて別のプログラムにした方がよさそうです。StorageBox Modを利用したプログラムを紹介すると利便性が高いかもしれません。
連載の目次
とりあえずの案です。あくまで案なので!(リクエストがあれば内容の追加も検討します)
- はじめに整地の種類を考える(今回の記事)
- (1)落下する砂や砂利の対策
- (4)奥行き・幅・高さを指定して「切土」する
- (7)高さを自動認識して切土する整地プログラム
- 奥行き・幅を指定して「床張」するプログラム
- 奥行き・幅を指定して「盛土」するプログラム
- あらかじめ用意した外枠の内側を自動で「床張」or「盛土」するプログラム
- 「切土」&「床張」プログラム
- 「切土」&「盛土」プログラム
- 奥行き・幅を指定して「埋立」するプログラム
実際の記事はまだほとんどできておらずプログラムしかない、あるいは案だけしかないというものがほとんどです。
破綻することはないと思うのですが、特定の回で予想以上に文量や記事量が増える可能性がありそうです。
思いついたことを気の向くまま書き散らしていくというのがこのサイトの運営方針なので仕方ないですよね:P
なお今回の連載の方針としては、以下を考えています。
- 原則としてComputerCraft1.6以上を対象とし、燃料はあらかじめ十分な量補給されているものとする(途中の燃料切れは考慮しない)
- 最初はできるだけ簡単なプログラムから紹介
- 簡単なプログラムで失敗したことの修正、あるいは欲しい機能の追加という形でより複雑な機能をプログラムに付け加えていく
- 複雑なプログラムでは、アルゴリズムの紹介をメインにし、CC初心者に対しては「細かいプログラムはわからないけどやっていることはなんとなくわかる」というレベルの理解を目指す
- できるだけ関数で分割して、プログラムのmain部分で何をやっているかわかるように心がける
- アルゴリズムさえ理解できれば、もっと違う機能をつけたくなったときに、自分で一からプログラムを作り直すことができますよね?
- 最終的に、タートルが整地するのをただひたすら眺めるだけというタートル愛にあふれた動画を作ることをめざす。誰得? 僕得!