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=wataru yamamoto]
# 【第54回】 タートルでブランチマイニングをしよう(2)
:::success
## ◆ 今回の目標
- ### ブランチマイニングをやろう!
- ### 「%」を使ってみよう!
:::
## ◆ ブランチマイニングをやろう!
前回はブランチマイニングをする準備として地下深くまでの階段を作ったね
今回はいよいよブランチマイニングを行うよ!
<img src="https://i.imgur.com/srEfCXn.pngg" width=50%>
## ◆ ブランチマイニングの種類
ブランチマイニングには「枝型」・「はしご型」・「風車型」など、ほっていく形によっていくつかの種類があるよ
今回はかんたんな「枝型」に似た形でブランチマイニングをやっていくよ
## ◆ 今回のブランチマイニング
今回はこのような形でブランチマイニングをやっていくよ
それぞれの直線の長さは16ブロック、直線と直線の間は3ブロックだよ
人が通れるようにかならず高さは2ブロックにするよ

:::success
## ◆ 課題1:ブランチマイニングをやろう!
:::
さっそくブランチマイニングのプログラムを書いてみよう!
どのような手順でプログラムを書いていけばいいか考えてやってみよう!
また、前回やったインデントを意識しながらやってみよう

:::info
## ヒント
課題1のプログラムはこのような手順で書いていくとわかりやすいよ!
1. 前に16ブロックほって進む
2. 右に16ブロックほって進む
3. 16ブロック戻る
4. 4ブロック戻る
5. 2〜4を4回くり返す
6. 1〜5を4回くり返す
:::
## ◆ 松明(たいまつ)を置いていこう
ブランチマイニングのプログラムができたね!
でもこのままだと、通路が暗いし敵も出てきそうだよね…
タートルに松明をもたせてブランチマイニングの形にほっていく途中で松明を置いてあげればいいね!
<img src="https://i.imgur.com/N4mME0w.png" width=40%>
今回は下のように直線の16ブロック目と8ブロック目に松明を置くようにしよう

:::success
## ◆ 課題2:松明(たいまつ)を置いていこう
:::
課題1を改良して、図のように直線の16ブロック目と8ブロック目に松明を置くようにしよう
タートルが進むじゃまにならないように戻るときに松明を置こう

:::info
## ヒント
16ブロック目と8ブロック目で松明を置くためには、戻るときのfor文のループカウンタが1か9のときに置いてあげればいいね
:::
## ◆ 課題2の書き方
みんなはif文の条件部に or を使って書いたかな?
今回は16ブロックの大きさだったけど、もっと大きくなって32ブロックや64ブロックになったら、if文がとっても長くなるよね…
実は、演算子の<span class="focus">「%」</span>を使えば短くきれいに書けるよ!
## ◆ 割り算のあまりを計算する「%」
「%」は割り算のあまりを計算する演算子で、「+ - * / 」と同じように使えるよ
```lua=
a = 13 % 4
```
このように書くと、13÷4のあまりの「1」が変数aに入るよ
## ◆ よく使う使い方
よく使う使い方として、if文を使って
```lua=
if a % 4 == 0 then
命令
end
```
と書くと、変数aが4の倍数のときだけ命令部の命令が実行されるよ
:::success
## ◆ 発展課題3:「%」を使ってみよう
:::
課題2を改良して、松明を置くためのif文の条件式に「%」を使った書き方に変更してみよう
:::info
## ヒント
1、9、17、25、…は「8」で割った余りが1になる数だね!
:::