2020年1月25日土曜日

露天掘りを極める

コンピュータークラフトでタートルをクアーリーのように動かす究極のプログラムを作成していきます。プログラムの基礎から応用まで、これを見たら誰でも簡単にわかるプログラムとなるようにサイトを目指していきます。

※プログラムに関しては全く知識はありませんので、間違いや勘違いなど多々あるかと思いますが、タートルは目的通りに動いていますので、取りあえず良しとしています。



パート1
基礎
プログラムを組む基本的なことを紹介します。まずはタートルを動かしてみることが重要です。プログラムは難しいの先入観を捨てましょう。

パート2
タートルに組み込まれているAPI(プログラム)の一覧です。turtle.xxxx()このような名前になっています。これをプログラミング言語で組み上げていきます。


パート3
外部ツールを使用してプログラムを書きます。コピペを多用すれば文字入力は少なくてすみますので子供でもプログラミングが可能になります。


パート4
基本となる一列を掘り進むプログラム
タートルの動きを想像して連続した処理は、ループカウンターを設置しましょう。ループカウンターだけでもプログラムは十分書くことができます。




パート5
右回り左回りに列を移動する
折り返し点とスタート側で列の移動を考えていきます。タートルが位置ずれを起こさないようにひとつひとつの動作を考えていきます。


パート6
列の移動のループを作成して一面を掘りぬく
いちばん簡単な一面を掘りぬくプログラムが完成します。この動きが理解できればプログラムで色々なことができるようになります。


パート7
スタート地点に戻りチェストにアイテムを入れる
一面を掘りぬいた後は、また一段下に掘らなければなりません。確実スタート地点に戻って下に掘るループを組み込みます。これで露天掘りプログラムは完成です。


パート8
if 文を使用して列の移動を終える
完成した露天掘りプログラムを改良していきます。if 文を使用して分岐点を作りますが、まだ理解できる範囲だと思いますので頑張ってチャレンジしてもらいたいです。


パート9
if 文で多重分岐で列の移動を管理
local 定義=0 を使用して分岐を増やしていきます。定義の数値を変更することで、タートルの横移動を管理します。


パート10
往復の採掘でクアーリーの動きを再現
一面を掘りぬいた後に二段目は戻りながら掘り進んでいきます。if 文をの中に if 文を入れ込んでループの終わりを組み込みます。


パート11
岩盤に到達したらプログラムを終える(失敗編)
ブロックのデータを調べるタートルAPIを使いこなせればプログラムの幅が大きく広がります。プログラム自体は失敗ですが、ある意味成功です。


パート12
岩盤に到達したらプログラムを終える(成功編)
失敗編から考えて出た結論です。プログラム的には完璧ですが、何があるかはわからないのがマイクラです。とりあえず今は成功としておきます。


パート13
コンフィグを設定してサイズを可変式に
「local␣定義=数値」で縦のサイズ、横のサイズを変更できるようにします。コンフィグ値を変更するだけで簡単にサイズを変えることができます。


パート14
関数を使用してメイン処理を簡略化
ブロックを調べながら前に進む部分を関数として定義、プログラムが読みやすくなり問題点や変更点を見つけやすくなります。


パート15
MOBによるタートルの位置ずれを防止する
タートルはMOBに行く手を阻まれて前に進めなくてもプログラムは実行され続けます。これがタートルの失踪の原因です。「while␣true␣ do」無限ループで回避します。


パート16
パイプの役割のタートルを追加して効率を上げる
露天掘りタートルのチェストに戻る上下移動の時間を短縮します。コンピュータークラフトは、タートルの動きの遅さが弱点です。


パート17
チェストの数を増やしてよりリアルな露天掘りにして完成
16個のラージチェストと露天掘りと輸送の2台のタートルにプログラムを組んで完全自動露天掘りプログラムが完成しました。


パート18
64台のタートルを動かして64x64を掘り抜く 失敗編
露天掘りタートルは砂利に行く手を阻まれ、輸送タートルのエラーが多発、無限水源による水害、タートルの台数が多いと何らかの不具合があることが判明。


パート19
64台のタートルを動かして64x64を掘り抜く 成功編
プログラムをきれいに終わらせることを考えるとエラーを出さないことが重要だと思います。何が起こるかわからないのがマイクラ!やりつくしました。


関連サイト
プログラム脱初心者を目指してシリーズ化しました。マイクラのMODをやりつくした人やこれからプログラムを始めたい人には、お勧めのサイトとなっています。思い通りにタートルが動いたときは、きっと感動するでしょう。

関連サイト
コンピュータークラフトを極める その2
高度なプログラムとして自動植林や農業の自動化などを中心として進めていきます。スロットのAPIで限りあるタートルのスロットの管理やインスペクトAPIでタートルにブロックを調べて何かをするなどが中心となります。

関連サイト
コンピュータークラフトを極める その3
自動農業を中心に考えたプログラムです。メタデータで作物の成長度合いで判別したりタートルのスロット操作を主に取り扱っています。水源の有効範囲が決まっているので、タートルの動きが少なくなり意外と楽かもしれません。

0 件のコメント:

コメントを投稿