プログラムに縦方向と横方向の動きをカウントさせて、燃料が規定値を下回るとチェストに行って燃料を補給して元居た場所に戻っていきます。タートルの位置の把握することが重要となります。
範囲は8x8で設定しています
※自動農業でのタートルの動きを想定したプログラムです、実際に植え付けや収穫は行いません、燃料が規定値を下回ったら補給するだけです
タートルのインベントリは空にします
タートルの燃料レベルは、0です
前のチェストに木炭1スタック用意します
プログラムのタートルの動き
タートルはチェストから木炭を1入手して燃料を補給します
燃料レベルは80となります
タートルの動き
前に7ブロック進み、列を移動して、7ブロック戻るを3回繰り返します
前に7ブロック進み、列を移動して、7ブロック戻り、スタート地点に戻ります
どの位置にいても燃料レベルが40を下回るとチェストに戻って燃料を1補給します
燃料が40を下回った地点まで戻り移動を開始します
タートルの燃料値の下限
if turtle.getFuelLevel()<40 then
列の移動の変数を無限ループ1回毎にリセット
local Line=0
列の移動をしたときに+1を加えます
Line=Line+1
前に進む変数をループ毎にリセット
local Forward=0
1ブロック前に進んだときに+1を加えます
Forward=Forward+1
戻ってくる変数をループ毎にリセット
local Uturn=7
1ブロック戻ってときに-1を引きます
Uturn=Uturn-1
--####燃料低でチェストに戻り元の場所に戻るプログラム
turtle.select(1)
turtle.suck(1)
turtle.refuel(1)
turtle.up()
turtle.forward()
turtle.forward()
while true do
local Line=0
for A=1,3 do
local Forward=0
for A=1,7 do
local FuelLevel=turtle.getFuelLevel()
print("FuelLevel:",FuelLevel)
if turtle.getFuelLevel()<40 then
turtle.turnLeft()
for A=1,Line do
turtle.forward()
end
turtle.turnLeft()
for A=1,Forward do
turtle.forward()
end
turtle.forward()
turtle.select(1)
turtle.suckDown(1)
turtle.refuel(1)
turtle.turnRight()
turtle.turnRight()
turtle.forward()
for A=1,Forward do
turtle.forward()
end
turtle.turnRight()
for A=1,Line do
turtle.forward()
end
turtle.turnLeft()
end
turtle.forward()
Forward=Forward+1
print("Forward:",Forward)
end
turtle.turnRight()
turtle.forward()
Line=Line+1
print("Line:",Line)
turtle.turnRight()
local Uturn=7
for A=1,7 do
local FuelLevel=turtle.getFuelLevel()
print("FuelLevel:",FuelLevel)
if turtle.getFuelLevel()<40 then
turtle.turnRight()
for A=1,Line do
turtle.forward()
end
turtle.turnLeft()
for A=1,Uturn do
turtle.forward()
end
turtle.forward()
turtle.select(1)
turtle.suckDown(1)
turtle.refuel(1)
turtle.turnRight()
turtle.turnRight()
turtle.forward()
for A=1,Uturn do
turtle.forward()
end
turtle.turnRight()
for A=1,Line do
turtle.forward()
end
turtle.turnRight()
end
turtle.forward()
Uturn=Uturn-1
print("Uturn:",Uturn)
end
turtle.turnLeft()
turtle.forward()
Line=Line+1
turtle.turnLeft()
end
local Forward=0
for A=1,7 do
local FuelLevel=turtle.getFuelLevel()
print("FuelLevel:",FuelLevel)
if turtle.getFuelLevel()<40 then
turtle.turnLeft()
for A=1,Line do
turtle.forward()
end
turtle.turnLeft()
for A=1,Forward do
turtle.forward()
end
turtle.forward()
turtle.select(1)
turtle.suckDown(1)
turtle.refuel(1)
turtle.turnRight()
turtle.turnRight()
turtle.forward()
for A=1,Forward do
turtle.forward()
end
turtle.turnRight()
for A=1,Line do
turtle.forward()
end
turtle.turnLeft()
end
turtle.forward()
Forward=Forward+1
print("Forward:",Forward)
end
turtle.turnRight()
turtle.forward()
Line=Line+1
print("Line:",Line)
turtle.turnRight()
local Uturn=7
for A=1,7 do
local FuelLevel=turtle.getFuelLevel()
print("FuelLevel:",FuelLevel)
if turtle.getFuelLevel()<40 then
turtle.turnRight()
for A=1,Line do
turtle.forward()
end
turtle.turnLeft()
for A=1,Uturn do
turtle.forward()
end
turtle.forward()
turtle.select(1)
turtle.suckDown(1)
turtle.refuel(1)
turtle.turnRight()
turtle.turnRight()
turtle.forward()
for A=1,Uturn do
turtle.forward()
end
turtle.turnRight()
for A=1,Line do
turtle.forward()
end
turtle.turnRight()
end
turtle.forward()
Uturn=Uturn-1
print("Uturn:",Uturn)
end
turtle.turnRight()
for A=1,7 do
turtle.forward()
end
turtle.turnRight()
end
--####燃料低でチェストに戻り元の場所に戻るプログラムの終わり
プログラムには print() を使用して燃料値、移動カウントをタートル画面に表示するようにしていますが、省略すればより短くなります。また新たにチェストでのタートルの動きを function MoveChesu() と関数とすればさらに短くなります。ただし燃料値が低くなりチェストに戻る動作を関数化すると変数を反映させることが難しくなります。
新たに関数処理を加えるとメイン処理とのつながりで、タートルの位置ずれが起こることが判明しました。turtle.forward() だけのような早い処理の場合は、os.sleep(秒) などを関数の最後に入れることで解消されるようです。
--####短くしたプログラム
--####燃料低でチェストに戻り元の場所に戻るプログラム
turtle.select(1)
turtle.suck(1)
turtle.refuel(1)
turtle.up()
turtle.forward()
turtle.forward()
function MoveChest()
turtle.forward()
turtle.select(1)
turtle.suckDown(1)
turtle.refuel(1)
turtle.turnRight()
turtle.turnRight()
turtle.forward()
end
while true do
local Line=0
for A=1,3 do
local Forward=0
for A=1,7 do
if turtle.getFuelLevel()<40 then
turtle.turnLeft()
for A=1,Line do
turtle.forward()
end
turtle.turnLeft()
for A=1,Forward do
turtle.forward()
end
MoveChest()
for A=1,Forward do
turtle.forward()
end
turtle.turnRight()
for A=1,Line do
turtle.forward()
end
turtle.turnLeft()
end
turtle.forward()
Forward=Forward+1
end
turtle.turnRight()
turtle.forward()
Line=Line+1
turtle.turnRight()
local Uturn=7
for A=1,7 do
if turtle.getFuelLevel()<40 then
turtle.turnRight()
for A=1,Line do
turtle.forward()
end
turtle.turnLeft()
for A=1,Uturn do
turtle.forward()
end
MoveChest()
for A=1,Uturn do
turtle.forward()
end
turtle.turnRight()
for A=1,Line do
turtle.forward()
end
turtle.turnRight()
end
turtle.forward()
Uturn=Uturn-1
end
turtle.turnLeft()
turtle.forward()
Line=Line+1
turtle.turnLeft()
end
local Forward=0
for A=1,7 do
if turtle.getFuelLevel()<40 then
turtle.turnLeft()
for A=1,Line do
turtle.forward()
end
turtle.turnLeft()
for A=1,Forward do
turtle.forward()
end
MoveChest()
for A=1,Forward do
turtle.forward()
end
turtle.turnRight()
for A=1,Line do
turtle.forward()
end
turtle.turnLeft()
end
turtle.forward()
Forward=Forward+1
end
turtle.turnRight()
turtle.forward()
Line=Line+1
turtle.turnRight()
local Uturn=7
for A=1,7 do
if turtle.getFuelLevel()<40 then
turtle.turnRight()
for A=1,Line do
turtle.forward()
end
turtle.turnLeft()
for A=1,Uturn do
turtle.forward()
end
MoveChest()
for A=1,Uturn do
turtle.forward()
end
turtle.turnRight()
for A=1,Line do
turtle.forward()
end
turtle.turnRight()
end
turtle.forward()
Uturn=Uturn-1
end
turtle.turnRight()
for A=1,7 do
turtle.forward()
end
turtle.turnRight()
end
--####燃料低でチェストに戻り元の場所に戻るプログラムの終わり
関連サイト
コンピュータークラフトを極める その3
1.16.5日本語化リソースパック配布
302個のMODの翻訳が完了したので YouTube にて配布いたします 。翻訳の内容など不備はありますが、無いよりはましだと思って使ってください。翻訳したMODの詳細については、まとめるのが面倒くさいので止めておきます。このリソースパックを導入することがマイクラMOD攻略の近道...
2019年8月14日水曜日
関連コンテンツ
-
Vampirism 1.7.10 / 1.12.2 は、吸血鬼MODです、プレーヤーは吸血鬼とハンターのどちらかでプレイを進めていきます。日本では馴染みが少ないMODですが、ブラッドマジックよりもわかりやすく、日本語化されているのでお勧めです。 ヴァンパイア ...
-
PixelmonGenerations-1.2.1での設定ですが、ピクセルモン、ピクセルモンリボーン、ピクセルモンジェネレーターでも同じだと思います。その他コンフィグを翻訳しています。 伝説スポーン率を上げる コンフィグ内のhoconファイル内の4項目を変更します #特定...
-
302個のMODの翻訳が完了したので YouTube にて配布いたします 。翻訳の内容など不備はありますが、無いよりはましだと思って使ってください。翻訳したMODの詳細については、まとめるのが面倒くさいので止めておきます。このリソースパックを導入することがマイクラMOD攻略の近道...
-
GVC_WW2_1.7.10.6は、マイクラのワールドが戦争中になるMOD、日本軍、アメリカ軍、ドイツ軍、ソ連軍の4か国の陸軍、海軍、空軍が至る所で戦闘をし、敵軍の基地を占拠して自国の旗を掲げます。 各軍のヘルメットをかぶって司令官になり戦争に参加可能です。 基地の生...
-
Reverse Craft、Uncrafting Table、黄昏の森の解体作業台を徹底比較してみました。日本では馴染みが深いリバースクラフトは、何の消費もせずに作成したアイテムを素材に戻せます。アンクラフティングテーブルは、経験値(XP)を消費して素材に戻します。解体作業台は、...
-
すいーと工房の「すいーとはーと」さん製作の1.7.10で大人気だった Tactical Frame がマイクラのバージョン1.10.2と1.12.2に対応。完成度の高いロボットに護衛対象を守る軍隊とさらにパワーアップしています。もちろん攻撃力の高いライフルも多数追加されていますの...
-
ハードコア系マイクラゆっくり実況者のハピ(HAPI)さんの [マインクラフト]深海マルチ故の夏。 ではマルチで鬼畜環境で楽しんでます。この動画の導入MODのダウンロードリンクとシード値です。鬼畜なマイクラを楽しみたい人はお勧めです。Bloodmoon(ブラッドムーン)や Roug...
-
オレエクスカベーション は、マインオール、カットオールの機能を持ち合わせたMODです。連続した原木、土、石、鉱石などを一括で破壊してくれます。コンフィグではなくマイクラ内で設定をするので簡単です。 マイクラのバージョンは1.7.10~1.12.2でも対応しています ONとO...
-
Pixelmon MOD は完成度の高さやボリュームはマイクラMODの中で一番だと思います。ゆえに権利の問題でもめていた時期もありました。解決したかどうかはわかりませんが、今はMODパックとして配布されていますので、MODを入れるのは難しいとか思っている方はMODパックでプレイす...
-
ロボットMODのTacticalFrame1.7.10β3.0、TacticalFrame-1.7.10-0.9.73を「すいーとはーとさん」からダウンロード、 非常に完成度が高い大型ロボットが多く追加され、さらに一撃でやられる強烈な攻撃力を持つMOBもいます。それらに対抗する...
0 件のコメント:
コメントを投稿