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

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

2023年4月9日日曜日

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

チェストにアイテムを入れる分を関数化してコンフィグ設定からチェストの段数を変更できるようにする 


チェストを二段にしたプログラム
露天掘り中にチェストに戻ってアイテムを入れる関数CHEST1()に書き込む
上に行く
    turtle.up()
ループスロットは1から16まで実行
    for SLOT=1,16 do
タートルはインベントリを選択してチェストにアイテムを入れる
    turtle.select(SLOT)
    turtle.drop()
※(SLOT)にはループの処理回数が入る
ループスロットの終わり
    end
下に行く
    turtle.down()


岩盤を発見したらチェストに戻ってプログラムを終える関数CHEST_end1()にも書き込みます

岩盤を発見したらチェストに戻ってプログラムを終える関数CHEST_end2()にも書き込みます




書き込んだ三つの関数はチェストにアイテムを入れる部分が同じなので関数化します


二段のチェストにアイテムを入れる関数を作ります
関数名はチェストドロップ
説明は省略


関数チェストドロップを3か所に組み込みます


    for SLOT=1,16 do
        turtle.select(SLOT)
turtle.drop()
    end
turtle.up()
    for SLOT=1,16 do
turtle.select(SLOT)
turtle.drop()
    end
    turtle.down()

    ⇓
    
    CHEST_drop()

コンフィグ化してチェストの段数を増やすことを可能にします
    local CHESTconfig=2

タートルはまず一段目のチェストにアイテムを入れます

ループアップは1からチェストコンフィグ-1まで実行
    for UP=1,CHESTconfig-1 do
※一段目のチェストの部分は上に行かないので-1としています

二段目のチェストにアイテムを入れる

ループダウンは1からチェストコンフィグ-1まで実行
     for DOWN=1,CHESTconfig-1 do
※ループアップが-1なので下がるのも-1となります

これをチェストコンフィグ分だけ繰り返します


関数チェストドロップをよりシンプルに
このように書くことでループスロットが一回だけのプログラムになります
ループアップは1からチェストコンフィグまで実行
   for UP=1,CHESTconfig do
もしもループアップが1より大きいときにタートルは上に行く
    if UP>1 then
turtle.up()
※ループアップが一回目の処理の時は上に行かないので-1が必要ありません

二段目のチェストにアイテムを入れる

ループダウンは1からチェストコンフィグ-1まで実行
     for DOWN=1,CHESTconfig-1 do
※上がった分だけ下がる必要があるので-1が必要です

これをチェストコンフィグ分だけ繰り返します


逆転の発想
上のチェストからアイテムを入れる(不採用プログラム)
ますタートルはチェストコンフィグ分だけ上に行く

繰り返しの部分
    チェストにアイテムを入れる
    もしもループダウンがチェストコンフィグでないなら
    下に行く

このような考えが先に浮かんだらスムーズにプログラムが組めるかもしれません


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


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

露天掘りプログラムの試運転の下準備
8台のタートルとラージチェストを8個設置するプログラム
スロット1にタートルを入れスロット2にチェストを入れます、8x64の広範囲を露天掘りするためにこのプログラムは最初に5ブロック上がるようにしています、また露天掘りプログラム名を「startup」とすることでタートルを右クリックするだけでプログラムが走り出します
5ブロック上に設置するために上に上がる
ループAは1から5まで実行
    for A=1,5 do
上に行く
    turtle.up()
ループAの終わり
    end

タートルを8台設置する
ループCは1から8まで実行
    for C=1,8 do
左を向いてスロット1を選んで下に設置し右を向く
    turtle.turnLeft()
    turtle.select(1)
    turtle.placeDown()
    turtle.turnRight()
もしもループCが8ではない時に
    if C~=8 then
ループBは1から8まで実行
    for B=1,8 do
前に行く
    turtle.forward()
ループBの終わり
    end
もしもの終わり
    end
ループCの終わり
    end

タートルの向きを変える
前に行って右を向いて前に行って右を向く
    turtle.forward()
    turtle.turnRight()
    turtle.forward()
    turtle.turnRight()

チェストを設置しながら戻ってくる
ここはタートルを設置するプログラムとほぼ同じなので説明を省略


本編の露天掘りプログラム
無限ループを使って絶対に前に行く関数を作る
関数名はフォワイルフォワード
    function WHILE_forward()
無限ループを実行
    while true do
もしもタートルが前に行けたら
    if turtle.forward() then
無限ループの終了
    break
もしもタートルが前に行けなかったら
    else
タートルは前を攻撃し前を破壊する
    turtle.attack()
    turtle.dig()
もしもの終わり
    end
無限ループの終わり
    end
関数の終わり
    end


絶対に前に行く関数を組み込む
露天掘りの部分はすべてGANBAN_forward()になっているので変更する部分はこの2か所になります
turtle.forward()  ⇒  WHILE_forward()
turtle.forward()  ⇒  WHILE_forward()


絶対に下に行く関数と絶対に上に行く関数を作る
考え方は絶対に前に行く部分とほぼ同じなので説明は省略


絶対に下に行く関数を組み込む
露天掘りの部分はすべてGANBAN_down()になっているので変更する部分はこの2か所になります
turtle.down()  ⇒  WHILE_down()
turtle.down()  ⇒  WHILE_down()


絶対に上に行く関数を組み込む
3か所変更します
turtle.up()  ⇒  WHILE_up()
turtle.up()  ⇒  WHILE_up()
turtle.up()  ⇒  WHILE_up()


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


2023年4月3日月曜日

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

 誰にでも簡単にできる露天掘りプログラム、プログラムの導入偏として作った動画です

8x8のサイズで深さ100を掘る露天掘り


燃料の補給
タートルのスロット1と2に石炭を1スタックずつ入れます
動画撮影用にプログラムの一時停止
    os.sleep(2)

タートルはスロット1を選んで
    turtle.select(1)
燃料をひとつだけ補給
    turtle.refuel(1)
スロット2を選んで
    turtle.select(2)
燃料をひとつだけ補給
    turtle.refuel(1)


一列を掘り進む
下を破壊
    turtle.digDown()
ループTATEは1から7まで実行
    for TATE=1,7 do
前に行く
    turtle.forward()
下を破壊
    turtle.digDown()
ループTATEの終わり
    end


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


一列を掘り戻る
一列を掘り進むと同じ


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


タートルの動きの部分を繰り返す
ループYOKOは1から4まで実行
    for YOKO=1,4 do
ループYOKOの終わり(23行目)
    end


左回りに列を移動に分岐を作る
もしもループYOKOが4より小さいなら
    if YOKO<4 then
左回りに列を移動
    turtle.turnLeft()
    turtle.forward()
    turtle.turnLeft()
もしもの終わり
    end


スタート位置に戻り一段下がる
右を向く
    turtle.turnRight()
ループMODORUは1から7まで実行
    for MODORU=1,7 do
前に行く
    turtle.forward()
ループMODORUの終わり
    end
右を向く
    turtle.turnRight()
下に行く
    turtle.down()


プログラム全体を繰り返す
ループHUKASAは1から100まで実行
    for HUKASA=1,100 do
ループHUKASの終わり(33行目)
    end

これで8x8の露天掘りのプログラムの完成


次にチェストの戻ってアイテムを入れるプログラムに書き換え

チェストまで上がる
右のプログラムに書き換える、ポイントは一回目のループHUKASAではタートルは上がらないってことです
左を向く
    turtle.turnLeft()
ループAGARUは1からHUKASA-1まで実行
    for AGARU=1,HUKSA-1 do
上に行く
    turtle.up()
ループAGARUの終わり
    end


チェストにアイテムを入れる
スロット1と2には石炭が入っているのでループSLOTは3から16までとなっています、タートルセレクトの中のSLOTにはループの回数である3から16までの数値が入ります
ループSLOTは3から16まで実行
    for SLOT=3,16 do 
タートルはループの回数ごとのスロットを選択
    turtle.select(SLOT)
アイテムを吐き出す
    turtle.drop()
ループSLOTの終わり
    end


露天掘り場所に戻る
タートルは次の段を掘るために上がった分+1だけ下がるので-1は必要ありません
右を向く
    turtle.turnRight()
右を向く
    turtle.turnRight()
ループSAGARUは1からHUKASAまで実行
    for SAGARU=1,HUKASA do
下に行く
    turtle.down()
ループSAGARUの終わり
    end


8x8の露天掘りプログラムの完成


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


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

露天掘りを強制終了したあとにチェストに戻る関数を作る


ループYOKOが一段目を掘り終わった後の処理を関数で作る

タートルはチェストの座標まで戻る必要があります

プログラムは関数CHEST1()と同じような内容になりますが、タートルはスタート時のXZ地点に戻る動きが必要になります、そして下に降りる動きは必要なくなります
関数はfunction␣関数名()
    function CHEST_end1()

タートルは右を向く
    turtle.turnRight()

ループMODORUは2からYOKOconfigまで実行
    for MODORU=2,YOKOconfig do

タートルは前に行く
    turtle.forward()

ループMODORUの終わり
    end

タートルは左を向く
    turtle.turnLeft()

タートルはチェストまで上がる
チェストにアイテムを入れる

関数の終わり
    end


露天掘りプログラム内に関数を組み込む
ブレークの前に組み込むことで関数を実行後に強制終了ができます
もしもループYOKOがYOKOconfigの時に
    if YOKO==YOKOconfig then

もしも岩盤カウントが0でない時に
    if GANBANcount~=0 then

関数チェストエンド1を実行
    CHEST_end1()

ブレイクでループYOKOを強制終了
    break

もしも岩盤カウントが0の時に
    else

後の処理を実行


ループYOKOが二段目を掘り終わった後の処理を関数で作る
タートルはこの位置で止まりますので、そのままチェストまで上がります


プログラムは関数CHEST_end1()と同じような内容になりますが、タートルはスタート時のXZ地点に戻る動きが必要ないです
説明は省略


露天掘りプログラム内に関数を組み込む
ブレークの前に組み込むことで関数を実行後に強制終了ができます、ここは二段目を掘った後なのでCHEST1()の関数との分岐になります
もしも岩盤カウントが0でない時は
    CHEST_end1()
もしも岩盤カウントが0の時は
    CHEST1()

このページの動画です

応援してね
 

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

岩盤発見の合図を露天掘りプログラム内に組み込み break でプログラムを強制終了させる 

岩盤を発見したらプログラムを強制終了

ループYOKOは二段を掘りぬくプログラムなので一段目と二段目で強制終了させる必要があります、それに伴いループHUKASAも終える必要があります


露天掘りを終えるトリガー
岩盤カウントの定義
    local GANBANcount=0

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

下に行って岩盤を調べる関数
    function GANBAN_down()

下のブロックが岩盤であるなら
    local GANBANcount=増えていく

これをトリガーとしてブレイクでループを強制終了させる


プログラム全体を終える
ループHUKASAは露天掘り全体を実行するループなので、岩盤を発見したらブレイクでループを終えるようにします
もしも岩盤カウントが0でない時に
    if GANANcount~=0 then

ループHUKASAを強制終了
    break

岩盤カウントが0の時
    else
その後のプログラムを実行する


ループYOKOで一段目を掘った時に岩盤が出てきたら
ループYOKOの一段目を掘り終えた時に強制終了させます
もしも岩盤カウントが0でない時に
    if GANANcount~=0 then

画面に表示(動画用なのでなくてもよい)
    print("nice!")

プログラムの一時停止(動画用なのでなくてもよい)
    os.sleep(5)

ループHUKASAを強制終了
    break

岩盤カウントが0の時
    else
その後のプログラムを実行する


ループYOKOで二段目を掘った時に岩盤が出てきたら
ループYOKO二段目を掘り終えた時に強制終了させます
もしも岩盤カウントが0でない時に
    if GANANcount~=0 then

画面に表示(動画用なのでなくてもよい)
    print("nice!")

プログラムの一時停止(動画用なのでなくてもよい)
    os.sleep(5)

ループHUKASAを強制終了
    break

岩盤カウントが0の時
    else
その後のプログラムを実行する


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

関連コンテンツ