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]
# 【第44回】 地下トンネルを掘ろう!(1)
:::success
## ◆ 今回の目標
- ### タートルで距離を調べよう!
:::
## ◆ 地下トンネルを掘ろう
今回から2回に分けて目的地までの地下トンネルを掘ってみるよ!

目的地までの地下トンネルを掘るためには、目的地までの<span class="focus">距離を調べること</span>が大事だよ!
## ◆ 距離(長さ)を調べる
今回は目的地までの距離(長さ)を調べることをやってみるよ!

川の向こう岸までの長さを調べることで<span class="focus">ちょうど良い長さの橋</span>を作ったり、離れた拠点までの距離を調べることでその<span class="focus">拠点までの地下トンネル</span>を作れたり、いろんな事ができるようになるよ!
:::success
## ◆ 課題1:障害物にぶつかるまで進み続けよう!
:::
for文やwhile文を使って前に進み続け、目の前にブロックがあったら止まるプログラムを書いてみよう!

<span class="focus">※注意</span>:タートルが無限に進み続けて見えなくならないように、100マスぐらいで必ず止まるようにしてあげよう
:::success
## ◆ 課題2:障害物にぶつかるまでの距離を調べよう!
:::
課題1を改良して、ブロックにぶつかるまで何マス前に進んだかを調べて表示してみよう!

:::info
## ヒント
止まるまでに何マス前に進んだかを調べるための手順:
1. 変数を用意する
1. for文やwhile文で1歩進むたびに変数に1を足す
1. 止まったらその変数を調べる
for文を使っている場合はループカウンターの" i "を使えるね!
while文を使っている場合は、自分で変数を用意してループするごとに1を足してあげよう!
自分で変数を用意する場合は最初の値を0にするのを忘れないように!
:::
## ◆ 目的地までの距離を調べるためには
離れた拠点などの目的地までの距離を調べたいのに、目的地までの間に山などの障害物がある場合があるよね
課題2のプログラムは山などの障害物でも止まってまうから、目的地までの距離を調べられないよね…

目的地までの距離を調べるために、目的地の目印となるブロックを設置してその目印にぶつかるまでほりながら前に進むようにしよう!
今回は目印のブロックとして、「看板」を使うよ
:::success
## ◆ 課題3:看板にぶつかるまでの距離を調べよう!
:::
課題2を改良して、前をほりながら進み、目の前のブロックが「看板」だったら止まるようにしよう!
前に進んだ距離を表示するのを忘れないように!

:::info
## ヒント
オークの看板のIDは「minecraft:standing_sign」だよ
<!-- オークの看板のIDは`minecraft:sign`だよ -->
ブロックの種類を調べるためにはturtle.inspect()命令を使うよ
turtle.inspect()命令は少し複雑だから、わからない人は第17回の資料で復習しよう!
:::
## ◆ 次回にむけて
今回は目的地までの距離を調べることができたね
次回は実際に目的地までの地下トンネルを掘ってみよう!