---
title: Rubyでオリジナルプログラムを作ろう
tags: 
author: [kyokucho1989](https://www.docswell.com/user/kyokucho1989)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/3EKG8R1RJD.jpg?width=480
description: やんばるCODE オンライン勉強会
published: October 19, 20
canonical: https://www.docswell.com/s/kyokucho1989/KVV19Q-2023-04-25-052128
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/3EKG8R1RJD.jpg)

Rubyで
オリジナルプログラムを作ろう
やんばるCODE 勉強会 2020/10/19
@kyokucho1989


# Page. 2

![Page Image](https://bcdn.docswell.com/page/L73N28QG75.jpg)

自己紹介
・kyokucho1989
・IoTが好き
・M5Stack楽しい
・広島在住
twitter: @kyokucho_1989
blog: https://matoyomi.hatenablog.com
youtube: マトリョーシカ的IoTチャンネル


# Page. 3

![Page Image](https://bcdn.docswell.com/page/87DWZM9NJG.jpg)

自己紹介
プッチ神父回路
（素数だけ数える）
カップラーメン IoT タイマー
（3分経ったらLINEにお知らせ）


# Page. 4

![Page Image](https://bcdn.docswell.com/page/VJP9DRZNE8.jpg)

Rubyでオリジナルプログラムを作ろう


# Page. 5

![Page Image](https://bcdn.docswell.com/page/2EVM1RWYEQ.jpg)

※今回の話はzennで作成中の教材に沿
って作られています
教材が完成したらモニター募って
ブラッシュアップします
https://zenn.dev/kyokucho1989/books/93
888412a4cb49af4cf3


# Page. 6

![Page Image](https://bcdn.docswell.com/page/57GG2MDW7L.jpg)

目次
1.
オリジナルプログラム作成のメリット
2.
やっていく上で必要なもの
3.
プログラムの型を知る
4.
めっちゃ簡単なプログラムをつくろう
5.
乱数をつかってみよう（数当てゲーム）
6.
オブジェクトを知ろう
7.
スーパー☆アウトプットタイム


# Page. 7

![Page Image](https://bcdn.docswell.com/page/4EQXPR1Q7P.jpg)

1.オリジナルプログラム作成のメリット
• 技術力が上がる
スタート-&gt; ゴールまでを自分で考える必要があるので
技術力があがる！
• アウトプットしやすい
試行錯誤をそのまま表現できる（苦労したところとか）
• ポートフォリオとして評価が高い（かも）
たぶん！


# Page. 8

![Page Image](https://bcdn.docswell.com/page/KJ46Y8RY71.jpg)

2.やっていくうえで必要なもの
• 100%アウトプットの心意気！！
学んだことはすべてアウトプットするぞ！という意志が必要
120%くらいでもOK
• RubyでHello Worldができること
環境構築ができていればOK
Railsの知識/オブジェクトの理解は必要なし！！！
やっていきながら勉強しよう！！


# Page. 9

![Page Image](https://bcdn.docswell.com/page/LE1V62QN7G.jpg)

3.プログラムの型を知ろう
•
問いかけ&gt; 選択&gt; データ処理 &gt; 条件分岐
これが基礎
例：RPGに出てくる村人の会話
こちらからのインプットに応じてなにかしらの
処理がなされる！！


# Page. 10

![Page Image](https://bcdn.docswell.com/page/GEWLWRLM72.jpg)

4.めっちゃ簡単なプログラムをつくろう-1
• オウム返しプログラムをつくるぞ！
入力した文章をそのまま返してくれるプログラム
やってみよう！


# Page. 11

![Page Image](https://bcdn.docswell.com/page/47ZM5RMME3.jpg)

4.めっちゃ簡単なプログラムをつくろう-2
• RPGっぽいプログラムをかいてみよう
選択肢に応じて返答が変わるぞ！


# Page. 12

![Page Image](https://bcdn.docswell.com/page/YJ6N9RN5JV.jpg)

え？うまくできない？


# Page. 13

![Page Image](https://bcdn.docswell.com/page/GJ55N85GJ4.jpg)

え？うまくできない？
正解です。


# Page. 14

![Page Image](https://bcdn.docswell.com/page/9E2N5KND7R.jpg)

4.めっちゃ簡単なプログラムをつくろう-3
• binding.pry
を利用して変数の中身を確認してみよう


# Page. 15

![Page Image](https://bcdn.docswell.com/page/D7YPKNPM7M.jpg)

4.めっちゃ簡単なプログラムをつくろう-4
プログラムが途中停止したところ
で「select_num」を打ち込む
select_numの中身が文字列になって
いる！！
こんな風に変更してみよう
文字列を数値に変更させるぞ


# Page. 16

![Page Image](https://bcdn.docswell.com/page/VEN5RX53J8.jpg)

5.乱数をつかってみよう-1
• 乱数=ランダムな数
指定した範囲の中でランダムに値を出してくれる
• 例：おみくじプログラム


# Page. 17

![Page Image](https://bcdn.docswell.com/page/Y79YM8YPE3.jpg)

5.乱数をつかってみよう-2
• 数当てゲームを作ってみよう
PCが選んだ値が1~10のどれかを当てるゲーム
答える &gt; 「大きい/小さい」の返事 &gt; 答える
この繰り返し
つくってみよう


# Page. 18

![Page Image](https://bcdn.docswell.com/page/G786L86XJD.jpg)

5.乱数をつかってみよう-3
• 数当てゲーム


# Page. 19

![Page Image](https://bcdn.docswell.com/page/L7L9LR9NER.jpg)

5.乱数をつかってみよう-4
• whileを使おう
条件がtrueの間はずっとループする
breakでループを抜けることができる
※途中でgetsなどで一時停止を設けること


# Page. 20

![Page Image](https://bcdn.docswell.com/page/4EMZMRZQ7W.jpg)

ちょっと休憩


# Page. 21

![Page Image](https://bcdn.docswell.com/page/PER6VR6KJ9.jpg)

全然関係ない話 - 今後勉強したいこと
•
水耕栽培
自給自足xIT技術
1次産業を家でやりたい
•
哲学の向こう側
意識はどこにあるかな（1000年後に役に立つかも）
ペンローズさんの量子脳理論がたのしい
•
宇宙開発
人工衛星をつくってロケットに乗せてもらいたい
火星へ行きたい


# Page. 22

![Page Image](https://bcdn.docswell.com/page/P7XMZRM5JX.jpg)

6.オブジェクトを知ろう -1
• オブジェクトとは
-概念的なもの。説明が難しい
-設計図orロボット工場 ないしそこから生まれたもの
↑class
↑インスタンス
• オブジェクトを使うとなにが便利？
-管理がしやすい（一括で管理できる）
-堅牢。勝手に属性を追加/変更されるのを防げる
Class
インスタンスたち


# Page. 23

![Page Image](https://bcdn.docswell.com/page/37KG8RGRED.jpg)

6.オブジェクトを知ろう -2
• 論よりRun
classをつくってみる
robo1: Roboクラスから生成されたやつ
initilalize メソッド：生成された時しか呼び出せないメソッド


# Page. 24

![Page Image](https://bcdn.docswell.com/page/LJ3N28NGJ5.jpg)

6.オブジェクトを知ろう -3
• ロボットに名前づけ/お話し機能を追加
ロボットが生成された時に自分の名前を言う
robo1.helloでこんにちは！と言う


# Page. 25

![Page Image](https://bcdn.docswell.com/page/8JDWZMWNEG.jpg)

お話し機能の中でロボの名前を呼ばせたい！


# Page. 26

![Page Image](https://bcdn.docswell.com/page/VEP9DR9N78.jpg)

6.オブジェクトを知ろう -4
• インスタンス変数を使う
@name : インスタンス変数
robo1（Mike）の中でつかう変数


# Page. 27

![Page Image](https://bcdn.docswell.com/page/27VM1RMY7Q.jpg)

6.オブジェクトを知ろう -5
• インスタンス変数の書き換え/参照
↑ リファレンスを参照のこと
特定のメソッドを省略している。


# Page. 28

![Page Image](https://bcdn.docswell.com/page/5JGG2MGWJL.jpg)

7.スーパー⭐︎アウトプットタイム
• 自分のオリジナルプログラムを作って公開しよう
オブジェクトとか使わなくても大丈夫！
RPGの問いかけプログラムのテキストを修正して
自分のオリジナルの問いかけをつくってみてもOK！
・必要なのはアウトプット！！ なんかつくってみよう。
twitterでもslackでも、メンション飛ばしていただければ
反応しに行きます！！
twitter: @kyokucho_1989


# Page. 29

![Page Image](https://bcdn.docswell.com/page/47QXPRXQJP.jpg)

ご静聴、ありがとうございました。
（なにか質問あればどうぞ！）


