owned this note
owned this note
Published
Linked with GitHub
###### tags: `minecraft`
<style>
* {font-family: 'Terminal','ヒラギノ丸ゴ ProN','Hiragino Maru Gothic ProN',YuGothic,'Yu Gothic','Hiragino Kaku Gothic ProN','ヒラギノ角ゴ ProN W3','Verdana','Arial',sans-serif;}
.markdown-body {font-family: 'Terminal','ヒラギノ丸ゴ ProN','Hiragino Maru Gothic ProN',YuGothic,'Yu Gothic','Hiragino Kaku Gothic ProN','ヒラギノ角ゴ ProN W3','Verdana','Arial',sans-serif;}
h2 {padding-top: 50px;}
img {margin: 20px auto;}
.alert-success {margin-top: 50px;}
.alert h2 {padding-top: 0px;}
.part {letter-spacing: .1rem;}
.markdown-body h3 {margin-top: 12px;margin-bottom: 12px;}
.markdown-body p {font-size: 1.25em;margin-top: 12px; margin-bottom: 16px;}
.markdown-body li {font-size: 1.25em;}
.markdown-body pre {font-size: 20px;}
.focus {color: red;font-weight: bold;}
.link-box {display: flex;justify-content: space-between; margin-top: 50px;margin-bottom: 50px;}
a.link {display: block; width: 50%; padding: 10px 15px; text-align: center; color: #fff; font-weight: bold; font-size: 20px; letter-spacing: .1em; text-decoration: none;}
a.link:hover {opacity: 0.85;}
a.prev {background: linear-gradient(to bottom, #1A7BBD 0%, #1A7BBD 50%, #125684 51%, #125684 100%); border-radius: 10px 0 0 10px;}
a.next {background: linear-gradient(to bottom, #D76820 0%, #D76820 50%, #964816 51%, #964816 100%); border-radius: 0 10px 10px 0;}
</style>
> [name=shinya kunisada]
# 【第20回】さいくつプログラムをより良くしよう!
:::success
## 【今回の目標】
- ### さいくつプログラムをより良くしよう!
:::
## ◆ さいくつプログラムの問題点
### 前に、for文を使ってさいくつプログラムを作ったね!
```lua=
-- さいくつプログラム
--
for i = 1, 10 do <-- 10段掘りすすめる
turtle.digDown()
turtle.down()
for i = 1, 4 do < -- 1段掘るごとに、4回周りを掘る
turtle.dig()
turtle.turnLeft()
end
end
for i = 1, 10 do <-- 掘り進めた分だけ上に上がって戻ってくる
turtle.up()
end
```
### でも、使ってみるといくつかの問題点が出てくる
- ### <span class="focus">燃料が切れたら戻ってこない</span>
- ### <span class="focus">土も石も砂利も全部取ってきてしまう</span>
- ### <span class="focus">アイテムインベントリが少ない</span>
## ◆ 改良しよう!
- ### 燃料が切れたら戻ってこない
- ### <span class="focus">土も石も砂利も全部取ってきてしまう</span>
- ### <span class="focus">アイテムインベントリが少ない</span>
### 今回はこの2つを改良していこう!
## ◆ どうすればいいか
###
- ### 土や石などいらないブロックはほらない
- ### <span class="focus">いらないブロックは捨てつつほる</span>
### この2つのどちらかで解決することができそう
### 今日は下の方法を使ってみよう
::: success
## 【課題1】土だけを捨てよう!
:::
### タートルの持っているアイテムのうち、土だけを捨てるようなプログラムを書いてみよう!

### アイテムの名前を調べるために<span class="focus">turtle.getItemDetail(スロット番号)命令</span>を使おう!<br><br>
### <span class="focus">turtle.drop()命令</span>を使えば、アイテムを捨てることができるよ!<br><br>
### 土ブロックの名前は<span class="focus">"minecraft:dirt"</span>だったね!<br><br>
### for文を使って、すべてのスロットのアイテムを調べよう!
:::success
## 【課題2】さいくつプログラムに組みこもう
:::
### 課題1のプログラムをさいくつプログラムに組みこんで改良しよう!
### <span class="focus">タートルが一段下がるとき</span>にスロットの中にある、土ブロックだけ捨てるようにしよう!
:::success
## 【課題3】土と砂利を捨てよう!
:::
### 土以外にも、不要なブロックは地下にたくさんあるね。
### 今度は土と一緒に、<span class="focus">砂利ブロックも捨てるように</span>課題1のプログラムを改良してみよう!<br><br>
### 砂利ブロックの名前は<span class="focus">"minecraft:gravel"</span>だよ!

:::success
## 【課題4】またまた組みこもう
:::
### 課題3のプログラムをさいくつプログラムに組みこもう!

### ちゃんと動くかな?
<div class="link-box">
<a href="https://hackmd.io/Q82QXDJOQ86_X2JchtdVqg" class="link prev">前に戻る</a>
<a href="https://hackmd.io/zrOkLlc-TSWuG0qT8z8E3A" class="link next">次に進む</a>
</div>