1.16.5日本語化リソースパック配布

302個のMODの翻訳が完了したので YouTube にて配布いたします 。翻訳の内容など不備はありますが、無いよりはましだと思って使ってください。翻訳したMODの詳細については、まとめるのが面倒くさいので止めておきます。このリソースパックを導入することがマイクラMOD攻略の近道...

2023年1月16日月曜日

コンピュータークラフトでプログラム18 露天掘り編12

岩盤を発見したら定義文字に数字を加えてプログラム終了の合図を作る。おまけでランダムに岩盤を設置するプログラムです。

岩盤をランダムに設置するプログラム

8x8のサイズに一段目は岩盤を敷き詰め、二段目はランダムに岩盤を設置する


※訂正
動画では2行目が
    AIZU=1
となっていましたが
    local AIZU=1
が正解です(間違えてました)

関数ランダムプレイスダウンを作りランダムにスロットを選ぶ
関数はファンクション␣名前()
    function RANDOM_placeDown()

SLOTには1から6までの数値がランダムに入るように定義
    local SLOT=math.randam(1,6)

タートルは定義文字のSLOTを選択スロットとするようにする
    turtle.select(SLOT)

下に岩盤を設置する
    turtle.placeDown()

関数の終わり
    end

一段目と二段目で岩盤の設置方法を変更する
もしもループYOKOが8以下なら
    if YOKO<=8 then

岩盤を設置
    turtle.placeDown()

違うなら
    else

ランダムに岩盤を設置
    RANDOM_placeDown()

もしもの終わり
    end

タートルのスロット1,2,3,4に岩盤を入れてスタート、一段目はスロット1の岩盤を64ブロック敷き詰める、二段目の設置は1から6までのスロットをランダムに選ぶ

タートルの動きのプログラムは露天掘りとほぼ同じで上に行くか下に行くかの違いだけ
タートルが上に行くAPI
    turtle.up()

その他の部分は露天掘りプログラムを参照してください



本編の露天掘りプログラム

岩盤を調べながら前に行く関数
岩盤カウント=0を定義
    local GANBANcount=0
この定義文字に岩盤を見つけたら1ずつ加えていく

関数を作る
岩盤を調べながら前に行く関数
    function GANBAN_forward()

前に行く
    turtle.forward()

ARUとKUWASIKUを定義して下のブロックを調べたことを代入させる
    local ARU,KUWASIKU=turtle.inspectDown()

これで戻りが以下のように代入される
    ARU=trueもしくはfalse
    KUWASIKU=内部データ

ARUにはブロックがあるのかないのか
KUWASIKUにはブロックの内部データとなる

もしもでKUWASIKUの内部データの名前の部分が岩盤なら
    if KUWASIKU.name=="minecraft:bedrock" then

定義文字に1を加える
    GANBANcount=GANBANcount+1

岩盤を見つけたら画面に表示する(これは動画用なのでなくてもよい)
    print(GANBANcount)

もしもの終わり
    end

関数の終わり
    end


岩盤を調べながら下に行く関数
上と同じ考え方である

岩盤を見つけたら画面に表示する(これは動画用なのでなくてもよい)
    print("Donmai!")


本編の露天掘りプログラムを関数に書き換える
turtle.forward() ⇒ GANBAN_forward()
turtle.down() ⇒ GANBAN_down()


これでタートルが前に行く、もしくは下に行くという移動する動作の後で全てのブロックを調べることができます。正直言って岩盤の発見率は高いので、ここまでする必要はないかもしれません。あとプログラムの処理スピードを考えると掘る深さによって下を調べる調べないの判断をするってのもありかもしれませんね。


このページの動画です
応援してね


コンピュータークラフトでプログラム17 露天掘り編

チェストを設置するプログラム

基本となる1列にチェストを設置するプログラム
1段上に行く
turtle.up()

縦にチェストを設置するプログラム
下に設置する
turtle.placeDown()
ループカウンターAは1から3回まで実行
前に行くを2回
turtle.forward()
turtle.forward()
下に設置する
turtle.placeDown()
ループカウンターの終わり

基本的な動きは露天掘りと同じだがチェスト設置のルールでタートルフォワードが2回となっている、チェスト設置のタートルプレイスダウンが4回なので4個のチェストを設置する


左回りに列を移動
左を向く
turtle.turnLeft()
前に行く
turtle.forward()
左を向く
turtle.turnLeft()

これも露天掘りと同じ動きになる


折り返してチェストを設置して戻ってくる動き
基本となる縦にチェストを設置するプログラムをコピペする


右回りに列を移動する
右を向く
turtle.turnRight()
前に行くが2回
turtle.forward()
turtle.forward()
右を向く
turtle.turnRight()

これもチェスト設置のルールでタートルフォワードが2回となっている


プログラム全体をループさせる
ループカウンターBを1から4回まで実行
for B=1,4 do
最後に
end
で締めくくる

このまま動かすとタートルはチェスト設置場所からはみ出してしまう


ループBの4回目に右回りに列を移動させない
もしもループカウンターBが4より小さいときに右回りに列を移動
if B<4 then
    turtle.turnRight()
    turtle.forward()
    turtle.forward()
    turtle.turnRight()
end

1,2,3回目の処理では右回りに列を移動して4回目の処理で右回りに列を移動しなくなる


ループBの4回目に右回りに列を移動しないで元の位置に戻る
もしもループカウンターBが4回目になった時
else
ループBが1,2,3ではない時の意味になる
左を向く
turtle.turnLeft()
ループカウンターCは1から10回まで実行
for C=1,10 do
前に行く
turtle.forward()
ループカウンターCの終わり
end
右を向く
turtle.turnRight()
前に行く
turtle.forward()
下に行く
turle.down()
もしもループBが4回目になった時の終わり
end


1列にラージチェストを設置するプログラム


ラージチェストを積み上げるプログラム

このサイトの動画です
応援してね

関連コンテンツ