2019年7月5日金曜日

簡単なプログラム

プログラムのチュートリアル。タートルの単純な作業の簡単なループプログラムです。地面に6ブロック設置、上にブロック積み上げていく、最高256段の階段を作って降りるなどの簡単なプログラムです。



プログラムの書き込み

edit␣プログラム名、エンター
書き込み、呼び出し、編集ができます


プログラムの保存と実行

Ctrl キーを押すと Save、Run、Exit と表示されます
方向キーで選択してエンター


今回のプログラムの共通のルール

タートルのスロット1にブロックを1スタック入れます
スロット16には燃料を入れます


地面に6ブロック設置するプログラム



動作をタートル API でプログラムします

turtle.select(16)--燃料のスロット16を選択
turtle.refuel()--燃料の補給

turtle.select(1)--ブロックのスロット1を選択

turtle.up()--1段上昇


  1. turtle.forward()--前に行く
  2. turtle.placeDown()--下にブロックを設置
  3. turtle.forward()
  4. turtle.placeDown()
  5. turtle.forward()
  6. turtle.placeDown()
  7. turtle.forward()
  8. turtle.placeDown()
  9. turtle.forward()
  10. turtle.placeDown()
  11. turtle.forward()
  12. turtle.placeDown()

繰り返しを探します

  1. turtle.forward()--前に行く
  2. turtle.placeDown()--下にブロックを設置

1.2を6回繰り返しています
for 文でループカウンター「SETTI」を作ります

for␣任意の名前=開始値,終了値␣do
end

地面に6ブロック設置するプログラム

turtle.select(16)
turtle.refuel()

turtle.select(1)

turtle.up()

for SETTI=1,6 do--ループ「SETTI」1~6回まで実行
turtle.forward()--前に行く
turtle.placeDown()--下にブロックを設置
end--ループ「SETTI」の終わり




上にブロックを6段積み上げるプログラム



turtle.select(16)
turtle.refuel()

turtle.select(1)


  1. turtle.place()--前にブロックを設置
  2. turtle.up()--1段上昇
  3. turtle.place()
  4. turtle.up()
  5. turtle.place()
  6. turtle.up()
  7. turtle.place()
  8. turtle.up()
  9. turtle.place()
  10. turtle.up()
  11. turtle.place()
  12. turtle.up()

繰り返しを探します

  1. turtle.place()--前にブロックを設置
  2. turtle.up()--1段上昇

1.2を6回繰り返しています
for 文でループカウンター「TAKAKU」を作ります

for␣任意の名前=開始値,終了値␣do
end

上にブロックを6段積み上げるプログラム

turtle.select(16)
turtle.refuel()
turtle.select(1)
for TAKAKU=1,6 do--ループ「TAKAKU」1~6回まで実行
turtle.place()--前にブロックを設置
turtle.up()--一段上昇
end--ループ「TAKAKU」の終わり


上にブロックを64段積み上げるプログラム



turtle.select(16)
turtle.refuel()
turtle.select(1)
for TAKAKU=1,64 do--ループの終了値を64に変更
turtle.place()
turtle.up()
end



3段の階段を作って降りてくるプログラム





スタート位置は黄色で1~6までブロックを設置して階段を下りてきます


turtle.select(16)--燃料のスロット16を選択
turtle.refuel()--燃料補給

turtle.select(1)--ブロックのスロット1を選択


  1. turtle.forward()--前に行く
  2. turtle.up()--1段上昇
  3. turtle.placeDown()--下に1のブロックを設置
  4. turtle.forward()--前に行く
  5. turtle.placeDown()--下に2のブロックを設置
  6. turtle.up()--1段上昇
  7. turtle.placeDown()--下に3のブロックを設置
  8. turtle.forward()--前に行く
  9. turtle.placeDown()--下に4のブロックを設置
  10. turtle.up()--1段上昇
  11. turtle.placeDown()--下に5のブロックを設置
  12. turtle.forward()--前に行く
  13. turtle.placeDown()--下に6のブロックを設置


繰り返しを探します

前に行くは4回
1段上昇は3回
下にブロックを設置は6回

動作は3個です
  1. turtle.forward()--前に行く
  2. turtle.up()--1段上昇
  3. turtle.placeDown()--下に1のブロックを設置
  4. turtle.forward()--前に行く
  5. turtle.placeDown()--下に2のブロックを設置

1.の前に行くの部分を除いて考えると
繰り返しの部分は2.3.4.5の動作を3回繰り返しています
for 文でループカウンター「KAIDAN」を作ります

for␣任意の名前=開始値,終了値␣do
end

for KAIDAN=1,3 do--ループ「KAIDAN」1~3回まで実行
turtle.up()
turtle.placeDown()
turtle.forward()
turtle.placeDown()
end--ループ「KAIDAN」の終わり


階段を下りる動作をを考えます

180度回転します
turtle.turnRight()--右を向く
turtle.turnRight()--右を向く

階段を下りる動作
  1. turtle.forward()--前に行く
  2. turtle.forward()--前に行く
  3. turtle.down()--1段下がる
  4. turtle.forward()--前に行く
  5. turtle.down()--1段下がる
  6. turtle.forward()--前に行く
  7. turtle.down()--1段下がる

繰り返しを探します

  1. turtle.forward()--前に行く
  2. turtle.forward()--前に行く
  3. turtle.down()--1段下がる

1.の前に行くの部分を除いて考えると
繰り返しの部分は2.3の動作を3回繰り返しています
for 文でループカウンター「ORIRU」を作ります

for␣任意の名前=開始値,終了値␣do
end

for ORIRU=1,3 do--ループ「ORIRU」1~3回まで実行
turtle.forward()
turtle.down()
end--ループ「ORIRU」の終わり


3段の階段を作って降りてくるプログラム

turtle.select(16)
turtle.refuel()

turtle.select(1)

turtle.forward()

for KAIDAN=1,3 do
turtle.up()
turtle.placeDown()
turtle.forward()
turtle.placeDown()
end

turtle.turnRight()
turtle.turnRight()

turtle.forward()

for ORIRU=1,3 do
turtle.forward()
turtle.down()
end



32段の階段を作って降りてくるプログラム(コンフィグ設定)



コンフィグを作って段数を変更を簡単にします

local␣任意の変数名=終了値


local DAN=32--変数名「DAN」=32としています
turtle.select(16)
turtle.refuel()
turtle.select(1)
turtle.forward()
for KAIDAN=1,DAN do--終了値に、DAN=32が入ります
turtle.up()
turtle.placeDown()
turtle.forward()
turtle.placeDown()
end
turtle.turnRight()
turtle.turnRight()
turtle.forward()
for ORIRU=1,DAN do--終了値に、DAN=32が入ります
  turtle.forward()
  turtle.down()
end

1段に使用するブロックが2個で使用するスロットは1
1スロット64ブロックなので最高32段までとなります
もし64段まで高くしたいのなら

64段の階段を作って降りるプログラム

スロット1に丸石、スロット2に木材を64個入れます


local DAN=64--変数名「DAN」=64
turtle.select(16)
turtle.refuel()
turtle.select(1) --ブロックのスロット1を選択
turtle.forward()
for KAIDAN=1,DAN/2 do--終了値に、DAN=64/2=32
  turtle.up()
  turtle.placeDown()
turtle.forward()
turtle.placeDown()
end

turtle.select(2)--ブロックのスロット2を選択


for KAIDAN=1,DAN/2 do--終了値に、DAN=64/2=32
turtle.up()
turtle.placeDown()
turtle.forward()
turtle.placeDown()

end
turtle.turnRight()
turtle.turnRight()
turtle.forward()
for ORIRU=1,DAN do--終了値に、DAN=64
turtle.forward()
turtle.down()
end


変更点

turtle.select(1)
ループ「KAIDAN」を「DAN/2」64の2分の1まで実行
turtle.select(2)
ループ「KAIDAN」を「DAN/2」64の2分の1まで実行

アイテムスロットを選ぶ「turtle.select()」を1ずつ増やしていき
そのあとにループ「KAIDAN」を「DAN/3.4.5・・」とするともっと高い階段を作ることができます。
さらに「turtle.select()」を含むループにするとプログラムは簡略化できます。


256段の階段を作って降りるプログラム


スロット8まで1スタックのブロックでを入れます


local DAN=256--変数名「DAN」=256
turtle.select(16)
turtle.refuel()

turtle.forward()

for TAKAIKAIDAN=1,8 do--ループ「KAIDAN」を8回実行
    turtle.select(TAKAIKAIDAN)--ループ「TAKAIKAIDAN」ごとにスロットを1.2・・
    for KAIDAN=1,DAN/8 do--コンフィグ「DAN」の4分の1を実行
turtle.up()
turtle.placeDown()
turtle.forward()
turtle.placeDown()

    end--ループ「KAIDAN」の終わり
end--ループ「TAKAIKAIDAN」の終わり


turtle.turnRight()
turtle.turnRight()
turtle.forward()
for ORIRU=1,DAN do--終了値に、DAN=256
turtle.forward()
turtle.down()
end


Y値:255で階段は終わりました


関連サイト

0 件のコメント:

コメントを投稿