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

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

2022年10月28日金曜日

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

関数
function 名前()
    プログラム
end

チェストに戻ってアイテムを入れて露天掘りに戻る部分を関数化


関数化するとこうなる
露天掘りのプログラムの前に
function CHEST1()
    チェストに戻るプログラムをカットして貼り付け
end

これで関数CHEST1が完成

関数CHEST1()を露天掘りプログラムに組み込む
チェストに戻るプログラムの位置に組み込む
elseif (YOKO==YOKOconfig*2) then
    CHEST1()


関数を作った一番の利点はチェストに戻る部分と基本プログラムを分けて考えることができることです

と言いたいんですが

本心はプログラムが縦に長いと動画やサイトの画面に収まらずに説明しにくい


チェストに戻る関数部分


基本動作の露天掘り部分
露天掘り部分がすっきりして読みやすくなる

ほんとはもっと説明書きをしたいんですが、できるだけ行を少なくしたい


これで動くと思ったんですが、動かない、原因は
タートルが上下に動く終わり値をループHUKASAの処理回数にしていること
for AGARU=1,HUKASA*2-1 do
    turtle.up()

for SAGARU=1,HUKASA*2-1 do
    turtle.down()

--露天掘りプログラム
for HUKASA=1,HUKASAconfig/2 do

露天掘り部分のループカウンターの処理は関数内では反映されない


ループHUKASAの中に関数CHEST1()を組み込む
for HUKASA=1,HUKASAconfig/2 do
function CHEST1()

これで正常に動く

これでは関数を作った意味がない


タートルがチェストで自動で止まるようにする
タートルが前を調べるAPI
turtle.inspect()

戻り値の
true/false
name
これを利用する

使い方
local ARU,KUWASIKU=turtle.inspect()
ARUとKUWASIKUを定義して
turtle.inspect()の戻り値を代入する
ARUにtrue/falseを代入
KUWASIKUに詳細データを代入させる


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

2022年10月27日木曜日

楽天モバイルの解約

スマホから解約すればものすごく簡単です。楽天モバイルは最低利用期間の縛りもないのでいつでも気軽に解約できます。もちろん事務手数料もかかりません。解約者数が多い、それは情報も多いので今いちばん解約しやすいのが楽天モバイルなんですね。さらにレンタル扱いのSIMカードを返却する必要ありません。

2022年11月からは毎月この額が引き落とされるようになる
(2022年9月分と10月分は1ギガ未満の人はポイントで還元)


これで月1ギガ以内の節約生活も終わりです




解約はスマホアプリからが楽です
my楽天モバイルアプリ


契約プラン


手続きへと進む


解約


次へ進む


アンケートに答えて解約内容を確認する


解約を完了する


回線の解約手続き完了


申し込みアドレスに解約完了のお知らせメールが届く


わずか2分で解約完了

Rakuten UN-LIMITVII は違約金は発生しない、というよりも今は楽天モバイルはワンプランなので解約で違約金は発生しない、最低利用期間の設定もない


返却する必要はなく自分で破棄することができる


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

プログラムの修正(勘違い)
動画の説明は完全に間違っていました、実は後で作ったプログラムとごちゃ混ぜになっていた、動画制作とプログラムを組むことの難しさを痛感!
大変申し訳ありません。

変更点は

変更前

変更後
回れ右をループSAGARUのendの後にして
turtle.turnRight()
turtle.turnRight()

ループSAGARUの終わり値をループAGARUの終わり値と同じにし、上がった分だけ下がるようにして
HUKASA*2-1

下に行くを付け加えました
turtle.down()


さらに2か所を変更

変更前

変更後

タートルが回れ右をして下に行くを
turtle.turnRight()
turtle.turnRight()
turtle.down()

下に行って回れ右に変更
turtle.turnRight()
turtle.turnRight()
turtle.down()


修正後のプログラム
このようにした意味は下のようにしたかったから


チェストの戻ってアイテムを入れて露天掘りに戻る部分


チェストに戻って~を抜いても露天掘りができる
これは後々チェストに戻って~を関数化するためです


ただ動けばいいとの考えでプログラムを組んでも面白くないんです
改良や修正を加えて育てていくのがプログラムだと思っています


チェストに戻るタイミングを考える

これも前回と同じくループYOKO1回の処理後になる、2段を掘り終えたタイミングでチェストに戻るかどうかの判断をするようにする

ループHUKASAの回数で管理する
コンフィグと係数を作る、初期値は6、係数はコンフィグと同数


コンフィグをプログラムに反映させる
チェストに戻るタイミングの分岐
if HUKASA==MODORUconfig then
コンフィグ値は6なのでループHUKASAの6回目の処理でチェストに戻る


コンフィグ値に係数を加える
MODORUconfig=MODORUconfig+MODORUkeisuu
コンフィグ値6に係数の6を加える

これでMODORUconfigには
6+6=12
12+6=18
18+6=24
24+6=30
と6の倍数が入ることになる
そうすればループHUKASAの処理回数に対応できる


タートルのスロットの埋まり具合で管理する
スロットを調べるAPIを使う
turtle.getItemCount()
チェストに戻るタイミングの分岐で使うとこうなる
if turtle.getItemCount(12)~=0 then

(12)
がタートルのスロットNO
~=0
で0ではないとき
スロット12にひとつでもアイテムが入っていればチェストに戻ることになる


指定するスロットを可変式にする
12~15くらいが妥当


コンフィグ値の反映
if turtle.getItemCount(SLOTconfig)~=0 then


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


2022年10月23日日曜日

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

ループYOKOの1回の処理でチェストに戻るプログラム
elseif (YOKO==YOKOconfig*2) then
for AGARU=1,HUKASA*2-1 do
turtle.up()
end

チェストに戻るタイミングは
YOKOconfig*2
ループYOKOの最後の回れ右をして下に行かずにチェストに戻る

タートルが上に行くループ
for AGARU=1,HUKASA*2-1 do
turtle.up()
end

ループAGARUを作り
turtle.up()
をループさせる

ループAGARUの終わり値は
HUKASA*2
として動かしてみるとチェストより1段上に上がってしまうので
HUKASA*2-1
とする

タートルがチェストから露天掘りに戻る
プログラムの一時停止をチェストにアイテムを入れると仮定
os.sleep(10)

回れ右をする
turtle.turnRight()
turtle.turnRight()

露天掘り場所に戻る
for SAGARU=1,HUKASA*2 do
turtle.down()
end

ループSAGARUを作り
turtle.down()
をループさせる

ループSAGARUの終わり値は
HUKASA*2


チェストにアイテムを入れる
スロット1から16までのアイテムを吐き出す
for SLOT=1,16 do
turtle.select(SLOT)
turtle.drop()
end

ループSLOTには1から16までの数字が入り
turtle.select(SLOT)
でタートルは1から16までのスロットを選択しその後の
turtle.drop()
でタートルは前にアイテムを吐き出す

タートルのスロット選択を1に戻す
turtle.select(1)
タートルはスロット1を選択

これはエラーを回避するために必要になってくる

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

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

 2段を掘るプログラムをループさせることで露天掘りプログラムの完成
プログラムの先頭に
for HUKASA=1,100 do
プログラムの最後に
end

これでループYOKOを100回繰り返す、ループYOKOは2段を掘るので200段掘ることになるので岩盤まで確実に掘れる

コンフィグを作ってサイズを可変式にする
深さのコンフィグ
local HUKASAconfig=100--深さ

ループHUKASAの終わり値にコンフィグを当てはめる
for HUKASA=1,HUKASAconfig/2 do

ループYOKOが2段を掘るのでコンフィグ値が100なら200段となるので100段掘りたければ
HUKASAconfig/2
とすればコンフィグ値と同じになる

横のコンフィグ
local YOKOconfig=8--横のサイズ

ループYOKOの終わり値にコンフィグを当てはめる
for YOKO=1,YOKOconfig*2 do

ループYOKOは2段分の8x2の16回の処理なので
YOKOconfig*2
とすればコンフィグ値と同じになる

縦のコンフィグ
local TATEconfig=8--縦のサイズ

ループTATEの終わり値にコンフィグを当てはめる
for TATE=2,TATEconfig do

このようにコンフィグを作ることでサイズを可変式にできるがループYOKOの値で列の移動を管理すると横のサイズを8以上にするためには
if (YOKO==1)or(YOKO==3)or(YOKO==5)or(YOKO==7)or
(YOKO==10)or(YOKO==12)or(YOKO==14) then
この部分を増やすことが必要となるので違う方法で列の移動を管理する

次の列の移動と下に行く分岐の合図
文字を定義する
local AIZU=1
AIZUという文字はデフォルトで=1

右回りに列を移動の分岐
if AIZU==1 then

AIZUを2に変更
AIZU=2

左回りに列を移動の分岐
elseif AIZU==2 then

AIZUを1に変更
AIZU=1

このように右回りに列を移動したら
AIZU=2
に変更する
次に左回りに列を移動したら
AIZU=1
に変更することで列の移動の管理ができる

回れ右をして下に行くの分岐
elseif (YOKO==YOKOconfig)or
(YOKO==YOKOconfig*2) then

YOKOconfig
YOKOconfig*2
この時に回れ右をして下に行く、設定値が8なら8と16の時になる

このままでは正常に動かない
1番目の分岐
  if AIZU==1 then
2番目の分岐
  elseif AIZU==2 then
3番目の分岐
  elseif (YOKO==YOKOconfig)or
  (YOKO==YOKOconfig*2) then

分岐の順番がこれでは常に
AIZU=1
AIZU=2
がもしもに当てはまり
elseif (YOKO==YOKOconfig)or
(YOKO==YOKOconfig*2) then
の分岐までプログラムが進まない


分岐の順番を入れ替える
--もしもループYOKOがYOKOconfigかYOKOconfig*2なら
if (YOKO==YOKOconfig)or
(YOKO==YOKOconfig*2) then
--回れ右をして下に行く
turtle.turnRight()--右を向く
turtle.turnRight()--右を向く
turtle.down()--下に行く

この部分を最初の分岐とすることで正常に動く


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

2022年10月21日金曜日

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

パート10

1段を掘りぬくプログラムから考え直す


1列を掘り進むプログラムを基本としてプログラムを考える


列の移動をなくしてループYOKOでプログラムを組む
ループTATEをループYOKOで8回処理するプログラム
当然タートルを動かすと8x8で64ブロック前に掘り進む

このプログラムに列の移動を組み込む


ループYOKOの処理回数で列の移動を管理
ループYOKOには処理回数に応じて
1,2,3,4,5,6,7,8と数字が入る
これを利用して列の移動を管理する


右回りに列を移動するのは
ループYOKOの1,3,5,7回目の処理となる
複数個の選択プログラムの書き方
(YOKO==1)or(YOKO==3)or(YOKO==5)or(YOKO==7)
このようにカッコをorでつないでいく
これで1か3か5か7ならば、ということになる


それらに当てはまらない場合は左回りに列を移動する
else--そうでないなら
1,3,5,7に当てはまらない場合
ここでは2,4,6,8となり、その場合は左回りに列を移動する


このプログラムで動かしてみると
ループYOKO8回目の処理で左回りに列を移動して露天掘り範囲から1ブロックはみ出してしまう


最後のループYOKOの8回目の処理で分岐を作る
elseif
これでさらに分岐を作る
elseif YOKO~=8 then
もしもループYOKOが8でないなら左回りに列を移動
ループYOKOが2,4,6の時に左回りに列を移動して8の時には何もしない


他にもいろいろ書き方がある
ループYOKOが2,4,6なら左回りに列を移動し8の時には何もしない
初めはこの方がわかりやすいかもしれないが
~=
否定文も理解しておきたい


左回りに列を移動を先にするとこうなるが処理の順番に考えると右回りに列を移動の方がしっくりくる


回れ右をして1段下がり2段目を掘る準備をする
else
を付け加えて3分岐目を作る
これでループYOKOが8になった時に回れ右をして1段下がる
まわれ左でもOK


ループYOKOを16までとして2段目まで掘るプログラムにする
2段目は左回りに列を移動から始まるのでループYOKOの処理は10,12,14となる
そして2段目の最後の16回目の処理で回れ右をして1段下がる


このプログラムを読むと
  1. ループYOKOは1から16まで実行
  2. 下のブロックを破壊
  3. ループTATEで1列を掘り進む
  4. もしもループYOKOが1,3,5,7,10,12,14ならば
  5. 右回りに列を移動
  6. もしもループYOKOが8と16でなければ(2,4,6,9,11,13,15の時)
  7. 左回りに列を移動
  8. ループYOKOの終わり
これを16回繰り返すことで2段目まで掘って3段目を掘る準備をする

このように書けばわかりやすくなる
2番目の分岐、左回りに列を移動の判断を
==
で書くとこうなる


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

関連コンテンツ