使用したバージョンは1.12.2
縦4x横4x高さ6 の豆腐建築をタートルに作ってもらいます
turtle.select(16)--スロット16を選択
turtle.refuel()--燃料補給
turtle.select(1)--スロット1を選択
turtle.up()--一段上昇
turtle.forward()--前に行く
turtle.placeDown()--下にブロック設置
turtle.forward()
turtle.placeDown()
turtle.forward()
turtle.placeDown()
turtle.turnRight()--右を向く
turtle.forward()
turtle.placeDown()
turtle.forward()
turtle.placeDown()
turtle.forward()
turtle.placeDown()
turtle.turnRight()
turtle.forward()
turtle.placeDown()
turtle.forward()
turtle.placeDown()
turtle.forward()
turtle.placeDown()
turtle.turnRight()
turtle.forward()
turtle.placeDown()
turtle.forward()
turtle.placeDown()
turtle.forward()
turtle.placeDown()
turtle.turnRight()
実際に使用している文字はかなり少ないです。
turtle.select(16)--スロット16を選択
turtle.refuel()--燃料補給
turtle.select(1)--スロット1を選択
turtle.up()--一段上昇
turtle.forward()--前に行く
turtle.placeDown()--下にブロック設置
turtle.turnRight()--右を向く
同じ動きは、繰り返しの動作としてループカウンターを定義して簡略化、応用としてコンフィグを設定して縦、横、高さを変更できるプログラムを作成します。
一段目を作るプログラム
※任意の定義文字は、大文字としています
「前に行く、ブロックを設置」の3回の繰り返しの動作をループカウンターで「HEN」を定義して「1、2、3」のブロックを設置します、これが1辺「A」作るループとなります
for HEN=1,3 do--ループ名「HEN」で、1~3のブロックを設置
turtle.forward()--前に行く
turtle.placeDown()--下にブロックを設置
end--ループ「HEN」の終わり
右を向く動作とループ「HEN 」をループカウンター「ISSYU」で定義し、辺「A、B、C、D」を作ります、ループ「HEN」の後に右を向きます、右を向く位置は「3、6、9、12」となります
for ISSYUU=1,4 do--ループ名「ISSYUU」で、1~4までの辺の作成
for HEN=1,3 do
turtle.forward()
turtle.placeDown()
end
turtle.turnRight()--右を向く
end--ループ「ISSYUU」の終わり
一段目を作るプログラムはこうなります
turtle.select(16)--スロット16を選択
turtle.refuel()--燃料の補給
turtle.select(1)--スロット1を選択
turtle.up()--タートル1段上昇
for ISSYUU=1,4 do
for HEN=1,3 do
turtle.forward()
turtle.placeDown()
end
turtle.turnRight()
end
実際に動かしてみます
タートルのスロット1にブロック、16に燃料を入れてますedit␣プログラム名、エンター
プログラムの編集
Ctrl キーで「Save」「Run」「Exit」の選択が表示されます
Run でプログラム実行
1周(4x4)ブロックを設置します
六段目まで積み上げるプログラム
一段目を作った後は、12の位置でタートルは正面を向いて止まります、高さ六段目までの動作は、一段上昇、「ISSYUU」を6回繰り返しますので、ループカウンターで「UENI」を定義してしてループさせます、順番は一段上昇してループ「ISSYUU」となります、タートルの上昇位置はすべて12となります
turtle.select(16)
turtle.refuel()
turtle.select(1)
for UENI=1,6 do--ループ名「UENI」で1~6段目まで四角を積み上げます
turtle.up()--タートル一段上昇
for ISSYUU=1,4 do
for HEN=1,3 do
turtle.forward()
turtle.placeDown()
end
turtle.turnRight()
end
end--ループ「UENI」の終わり
動かしてみます
タートルは、4x4の四角を積み上げていきますが、ブロックが足りなくなります
1段目は、3x4=12
6段積み上げると、12x6=72
※1段目の使用ブロック数は、4x4ではなく、3x4辺となります
スロット1のブロックは、1スタック(64個)なので、使用するブロックの72個より少なくなり足りなくなります
スロットを高さ一段ずつで、スロットNOを 1→2→3→4 と変更していくために高さのループ「UENI」をスロット選択の turtle.select() に当てはめ「UENI」のループに入れます、「ISSYUU」のループの前にスロットが切り替わります
高さのループごとにスロットを変更するプログラムです
turtle.select(16)
turtle.refuel()
for UENI=1,6 do
turtle.up()
turtle.select(UENI)--1回のループで、1ずつ増えていきます
for ISSYUU=1,4 do
for HEN=1,3 do
turtle.forward()
turtle.placeDown()
end
turtle.turnRight()
end
end
動かしてみます
64個のブロックを各スロット1~6 に入れます、16に燃料を入れます
1段ごとにスロット変更してブロックを積み上げていきます
このプログラムで正方形の豆腐建築は完成です。ループカウンターの上限値を変更すればサイズと高さを変えることができます。
高さとサイズを変更できるプログラム
サイズ固定の豆腐建築プログラムはとても簡単ですが、応用としてサイズを自由に変更できるプログラムを試してみましょう。
インベントリの関係で最大サイズは
縦16x横16x高さ16 となります(燃料の補給なし)
local 変数名=数値 で変数を定義します、いわゆるコンフィグです、プログラム内ではなく、変数を定義して高さとサイズを簡単に変更することができるようになります
local TAKASA=15--高さの設定
local SIZE=16--大きさの設定
turtle.select(16)
turtle.refuel()
for UENI=1,TAKASA do--ループ「UENI」は、1~「TAKASA」まで実行
turtle.up()
turtle.select(UENI)
for ISSYUU=1,4 do
for HEN=1,SIZE-1 do--ループ「HEN」は、1~「SIZE-1」まで実行
turtle.forward()
turtle.placeDown()
end
turtle.turnRight()
end
end
動かしてみます
スロット1~15までにブロックを入れます、スロット16に燃料を入れます
コンフィグ設定
local TAKASA=15
local SIZE=16
16x16x15の正方形の筒ができました
縦横高さを変更できるプログラム
ループ「HEN」でブロックを設置する部分を「縦の動き」と「横の動き」の別々に考えて、local 変数名=数値 を当てはめます
local TATE=4--縦の設定
local YOKO=5--横の設定
local TAKASA=6
turtle.select(16)
turtle.refuel()
for UENI=1,TAKASA do
turtle.up()
turtle.select(UENI)
for ISSYUU=1,4 do
for HEN=1,TATE-1 do--ループ「HEN」は、1~「TATE-1」まで実行
turtle.forward()
turtle.placeDown()
end
turtle.turnRight()
for HEN=1,YOKO-1 do--ループ「HEN」は、1~「YOKO-1」まで実行
turtle.forward()
turtle.placeDown()
end
turtle.turnRight()
end
end
動かしてみます
スロット1~15までブロックを入れます、スロット16に燃料を入れます
コンフィグ設定
local TATE=10
local YOKO=20
local TAKASA=15
local TAKASA=15
10x20x15の長方形の筒ができました
燃料について
Fuel limit reached 燃料限界に達した
turtle.select(16)--スロット16を選択
turtle.refuel()--燃料補給
燃料を補給する項目ですが、タートル内に燃料を10000まで貯めることができます。先に燃料を入れておけばプログラムに加えなくてもタートルは動きます。
燃料に関するコマンド
タートル内の燃料を見る:refuel
タートルに燃料を入れる:refuel␣all
タートルに指定数の燃料を入れる:refuel␣数値
関連サイト
turtle.refuel()--燃料補給
燃料を補給する項目ですが、タートル内に燃料を10000まで貯めることができます。先に燃料を入れておけばプログラムに加えなくてもタートルは動きます。
燃料に関するコマンド
タートル内の燃料を見る:refuel
タートルに燃料を入れる:refuel␣all
タートルに指定数の燃料を入れる:refuel␣数値
関連サイト
0 件のコメント:
コメントを投稿