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]
# 【第49回】 クラフトのレシピを作ってみよう!(2)
:::success
## ◆ 今回の目標
- ### Table型を使いこなそう!
- ### 2種類以上の材料からクラフトしよう!
:::
## ◆ 前回のクラフト
前回はTable型を使って、1つのプログラムでいくつかのアイテムをクラフトできるようにしたね
でも、前回できたのは木材からクラフトできるアイテムだけで種類が少なかったよね
今回は前回のプログラムを改良して、木材だけでなくいくつかの材料からクラフトできるようにしよう!
<img src="https://i.imgur.com/oSj9Lwv.png" width=50%>
## ◆ 2種類の材料を使ったクラフトのレシピ
まず材料を2種類に増やそう!
「木材」と「棒」からクラフトできるアイテムのレシピを作るよ!
レシピは前回と同じように11個の値を持つTable型の変数を使って、スロットにアイテムがあるかどうかを数字で表すよ
前回は次のようなルールでレシピを作ったよね
・木材があったら :「1」
・木材がなかったら:「0」
今回は前回のルールに、木の棒を追加するよ
・棒があったら :「2」
・木材があったら :「1」
・棒も木材もなかったら :「0」
:::success
## ◆ 課題1 : チェストを準備しよう!
:::
チェストA、チェストB、チェストC、タートルを次のように設置しよう
チェストAには木材、チェストBには棒を入れておこう

:::success
## ◆ 課題2 : レシピを作ってみよう!
:::
木材と木の棒を使う「看板」のクラフトのレシピを作って変数に保存してみよう
上にも書いたように、棒は2、木材は1で表すよ

:::success
## ◆ 課題3 : レシピを使ってクラフトしてみよう
:::
「看板」をクラフトするプログラムを作ろう
課題2で作ったTable型の変数のレシピを使ってクラフトしよう
レシピの値が「2」のときは左を向いてからアイテムを取ってくればいいね!
## ◆ 3種類以上のレシピを保存する
2種類の材料を使ってクラフトすることができたね
3種類以上の材料を使うときにもやり方は同じだよ!
Table型の中の値を「3」、「4」、…としていけばいいね
:::success
## ◆ 課題4 : 材料を追加してみよう!
:::
3つめの材料として「丸石」を追加してみよう
丸石を使ってクラフトできるレシピとして、「かまど」を作るレシピを作ってクラフトしてみよう!

3つめの材料だから、丸石のときは「3」にしてあげればいいね!
:::success
## ◆ 課題5 : 個数を入力できるようにしよう!
:::
io.read()命令でクラフトする個数も入力できるようにしよう

## ◆ もっと便利にしてみよう
クラフトのプログラムは工夫することでもっともっと便利になるよ
- 使える材料の種類をもっと増やす
- 材料がなくなるまで、クラフトする機能をつける
- 途中で材料がなくなったら中断して、余った材料をチェストに戻すようにする
もし時間が余った人はいろいろ追加して遊んでみよう!