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 {max-width: 1024px;} */
.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=koki unemoto]
# 【第33回 タートルにクラフトさせてみよう Part.1】
:::success
## 【今回の目標】
- **タートルにクラフト機能をもたせよう**
- **タートルにクラフトをさせてみよう**
- **チェストとクラフトを組み合わせよう**
- **アルゴリズムについて知ろう (上級者コース以上の人)**
:::
## クラフトさせよう
今日はタートルにクラフトをさせてみよう!

## クラフトの準備
クラフトするには **クラフトタートル** が必要だよ。
上のレシピで **クラフトタートル** を作ろう!

## turtle.craft命令
タートルでクラフトをするためには **turtle.craft命令** を使うよ!

:::success
## 課題1 : カンタンなレシピを試そう
:::
### タートルのインベントリに原木1つ入れて **turtle.craft命令** で木材4つにしてみよう!

---
## チェストを使って自動化
手動でアイテムを持たせても意味がないから、チェストを使ってクラフトを **自動化** しよう!

:::success
## 課題2 : チェストを準備しよう
:::
### チェストA、タートル、チェストBを図のように横並びで設置しよう

---
:::success
## 課題3 : チェストから材料をとる
:::
### チェストAから材料のアイテムをとってクラフトしよう

:::info
【ヒント】
**turtle.suck(個数)命令** でチェストからアイテムが取れるよ!
**材料は一個ずつとってクラフトしよう!**
:::
---
:::success
## 課題4 : クラフトしたアイテムを入れる
:::
### 課題3を改良してクラフトした後にチェストBにそのアイテムを入れるようにしよう!

:::info
【ヒント】
**turtle.drop(個数)命令** でチェストにアイテムを入れることが出来るよ!
**turtle.drop(個数)命令** は個数を入れなければ選択したアイテムすべてをチェストに入れるよ!
うまく使い分けよう!!
:::
---
## アルゴリズム
ここで、何かをするときの **手順・方法** について考えてみよう!
アルゴリズムとは、問題を解決するための方法・手段のことを **アルゴリズム** というよ!

## 例:広島から東京に行く方法A
広島から東京に行く方法を考えてみよう!
飛行機を使う方法を **アルゴリズムA** としてみよう!

## 例:広島から東京に行く方法B
他の方法も考えてみよう!
同じようにして、今度は新幹線を使う方法を **アルゴリズムB** としてみよう!

## いいアルゴリズム
[アルゴリズムA(飛行機)の場合]
料金 : **12,000円**
時間 : **1時間20分**
[アルゴリズムB(新幹線)の場合]
料金 : 18,000円
時間 : 4時間
これを見るとアルゴリズムAのほうが **料金も安くて、時間も早い** から **いいアルゴリズム** と言えるね!
## プログラムでのいいアルゴリズム
プログラムでは、 **問題を解決する速さが早いアルゴリズム** や **簡潔で短いプログラム** のことを**いいアルゴリズム**と言うよ!

:::success
## 課題5 : 良いアルゴリズムを考えよう
:::
### 課題4でアイテムをクラフトする速度を、もっと早くする方法を考えてみよう!

---
### うまくできたかな?わからないことは先生にどんどん聞いてみよう!
<div class="link-box">
<a href="#" class="link prev">◀︎ 前の内容に戻る</a>
<a href="#" class="link next">次の内容に進む ▶︎</a>
</div>