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>
# 【第21回】トラップを作ろう!
:::success
## 【今回の目標】
- ### スポーンブロックに近づいてみよう
- ### タートルに攻撃させてみよう
- ### 自動化させたトラップを作ろう
:::
## ◆ スポーンブロック
### スポーンブロックは<span class="focus">敵や動物が近くに出現するようになる</span>とても特別なブロックだよ!

### 洞窟(どうくつ)などで見かけるブロックで、壊すことはできるけど<span class="focus">絶対に手に入らないんだ。</span>
### <span class="focus">まちがえて壊さないように気をつけよう!</span>
## ◆ タートルで攻撃する
### <span class="focus">turtle.attack()命令</span>を使えば、タートルが装備しているアイテムで目の前の敵などを攻撃することができるよ!

:::success
## 【課題1】たおしてみよう!
:::
### このスポーンブロックから出てきた動物をタートルでたおしてみよう!

できたかな?
## ◆ アイテムと経験値をおとす
### 敵や動物を倒すと、アイテムや経験値をおとすことがあるよ!

### 攻撃したことでおとしたアイテムは基本的に自動でタートルに回収されるよ!
### ただし、経験値はプレイヤーが近づかないと手に入らないよ!
:::info
【ポイント】
経験値はプレイヤーが近づかないと手に入らない
:::
## ◆ 新しいくり返し
### ここで、今までとは**ちょっとちがったくり返し**を使ってみよう!
## ◆ while文

### <span class="focus">while(ホワイル)文</span>は<span class="focus">条件式が成り立っているあいだずっと</span>命令を繰り返すよ!
## ◆ 条件式の書き方
### 条件式の書き方はif文のときと同じようにかけるよ!

## ◆ 無限ループ
### 無限ループをしたいときは、条件式のところに<span class="focus">true</span>と書けばいいんだよ!
### (trueは常に成り立つから)

### 無限ループしたプログラムは<span class="focus">break文</span>や<span class="focus">exit()関数</span>を使わない限り、プログラムの内部から止めることができないんだ。
### 使うときは注意してね!
:::info
### 【ポイント】
### 無限ループはwhile文の条件に<span class="focus">true</span>を書けばよい!
### 無限ループはプログラムの内部から止められないから、使うときは注意してね
### (プログラムを強制終了したいときは<span class="focus">shift + T を長押し</span>するか<span class="focus">タートルを破壊</span>すればOK)
:::
## ◆ お肉たくさん
### 自動的に敵をたおして肉などのアイテムを集める建物・装置のことを<span class="focus">トラップ</span>というよ!

:::success
## 【課題2】トラップをつくる!
:::
### <span class="focus">while文</span>をつかって自動的に攻撃するようなトラップを作ろう!

### 自動で攻撃できたかな?
## ◆ ループを抜けよう
### <span class="focus">break文</span>を使えば、for文やwhile文を途中でやめることができる

:::success
## 【課題3】ノルマを設定しよう!
:::
### アイテムを30個手に入れたら止まるように**break文**を使ってプログラムを改良しよう!

:::info
### 【ヒント】
### if文と組み合わせて、『もしアイテムが30個になったら』 break文でwhile文をやめよう!
### アイテムの個数を調べる命令は
- ### <span class="focus">turtle.getItemCount(スロット番号)</span>
- ### <span class="focus">turtle.getItemDetail(スロット番号)</span>
### の2つの命令どちらでもできるよ!
### 好きな方・使いやすい方を選ぼう!
:::
### できたかな?
<div class="link-box">
<a href="https://hackmd.io/_pXdShG6SoScwd146jBTrQ" class="link prev">前に戻る</a>
<a href="https://hackmd.io/tbdqeB5GQL6YYsPPzGPhiA" class="link next">次に進む</a>
</div>