SlideShare a Scribd company logo
1 of 29
Rubyで
オリジナルプログラムを作ろう
やんばるCODE 勉強会 2020/10/19
@kyokucho1989
自己紹介
・kyokucho1989
・IoTが好き
・M5Stack楽しい
・広島在住
twitter: @kyokucho_1989
blog: https://matoyomi.hatenablog.com
youtube: マトリョーシカ的IoTチャンネル
自己紹介
プッチ神父回路
(素数だけ数える)
カップラーメン IoT タイマー
(3分経ったらLINEにお知らせ)
Rubyでオリジナルプログラムを作ろう
※今回の話はzennで作成中の教材に沿
って作られています
教材が完成したらモニター募って
ブラッシュアップします
https://zenn.dev/kyokucho1989/books/
93888412a4cb49af4cf3
目次
1. オリジナルプログラム作成のメリット
2. やっていく上で必要なもの
3. プログラムの型を知る
4. めっちゃ簡単なプログラムをつくろう
5. 乱数をつかってみよう(数当てゲーム)
6. オブジェクトを知ろう
7. スーパー☆アウトプットタイム
1.オリジナルプログラム作成のメリット
• 技術力が上がる
スタート-> ゴールまでを自分で考える必要があるので
技術力があがる!
• アウトプットしやすい
試行錯誤をそのまま表現できる(苦労したところとか)
• ポートフォリオとして評価が高い(かも)
たぶん!
2.やっていくうえで必要なもの
• 100%アウトプットの心意気!!
学んだことはすべてアウトプットするぞ!という意志が必要
120%くらいでもOK
• RubyでHello Worldができること
環境構築ができていればOK
Railsの知識/オブジェクトの理解は必要なし!!!
やっていきながら勉強しよう!!
3.プログラムの型を知ろう
• 問いかけ> 選択> データ処理 > 条件分岐
これが基礎
例:RPGに出てくる村人の会話
こちらからのインプットに応じてなにかしらの
処理がなされる!!
4.めっちゃ簡単なプログラムをつくろう-1
• オウム返しプログラムをつくるぞ!
入力した文章をそのまま返してくれるプログラム
やってみよう!
4.めっちゃ簡単なプログラムをつくろう-2
• RPGっぽいプログラムをかいてみよう
選択肢に応じて返答が変わるぞ!
え?うまくできない?
え?うまくできない?
正解です。
4.めっちゃ簡単なプログラムをつくろう-3
• binding.pry を利用して変数の中身を確認してみよう
4.めっちゃ簡単なプログラムをつくろう-4
プログラムが途中停止したところ
で「select_num」を打ち込む
select_numの中身が文字列になっ
ている!!
こんな風に変更してみよう
文字列を数値に変更させるぞ
5.乱数をつかってみよう-1
• 乱数=ランダムな数
指定した範囲の中でランダムに値を出してくれる
• 例:おみくじプログラム
5.乱数をつかってみよう-2
• 数当てゲームを作ってみよう
PCが選んだ値が1~10のどれかを当てるゲーム
答える > 「大きい/小さい」の返事 > 答える
この繰り返し
つくってみよう
5.乱数をつかってみよう-3
• 数当てゲーム
5.乱数をつかってみよう-4
• whileを使おう
条件がtrueの間はずっとループする
breakでループを抜けることができる
※途中でgetsなどで一時停止を設けること
ちょっと休憩
全然関係ない話 - 今後勉強したいこと
• 水耕栽培
自給自足xIT技術
1次産業を家でやりたい
• 哲学の向こう側
意識はどこにあるかな(1000年後に役に立つかも)
ペンローズさんの量子脳理論がたのしい
• 宇宙開発
人工衛星をつくってロケットに乗せてもらいたい
火星へ行きたい
6.オブジェクトを知ろう -1
• オブジェクトとは
-概念的なもの。説明が難しい
-設計図orロボット工場 ないしそこから生まれたもの
↑class ↑インスタンス
• オブジェクトを使うとなにが便利?
-管理がしやすい(一括で管理できる)
-堅牢。勝手に属性を追加/変更されるのを防げる
インスタンスたちClass
6.オブジェクトを知ろう -2
• 論よりRun
classをつくってみる
robo1: Roboクラスから生成されたやつ
initilalize メソッド:生成された時しか呼び出せないメソッド
6.オブジェクトを知ろう -3
• ロボットに名前づけ/お話し機能を追加
ロボットが生成された時に自分の名前を言う
robo1.helloでこんにちは!と言う
お話し機能の中でロボの名前を呼ばせたい!
6.オブジェクトを知ろう -4
• インスタンス変数を使う
@name : インスタンス変数
robo1(Mike)の中でつかう変数
6.オブジェクトを知ろう -5
• インスタンス変数の書き換え/参照
↑ リファレンスを参照のこと
特定のメソッドを省略している。
7.スーパー⭐︎アウトプットタイム
• 自分のオリジナルプログラムを作って公開しよう
オブジェクトとか使わなくても大丈夫!
RPGの問いかけプログラムのテキストを修正して
自分のオリジナルの問いかけをつくってみてもOK!
・必要なのはアウトプット!! なんかつくってみよう。
twitterでもslackでも、メンション飛ばしていただければ
反応しに行きます!!
twitter: @kyokucho_1989
ご静聴、ありがとうございました。
(なにか質問あればどうぞ!)

More Related Content

What's hot

IoTちっくなウェブサービスをつくるぞ!
IoTちっくなウェブサービスをつくるぞ!IoTちっくなウェブサービスをつくるぞ!
IoTちっくなウェブサービスをつくるぞ!
K K
 
kintone でわくわくIoT~広がる無限の可能性~
kintone でわくわくIoT~広がる無限の可能性~kintone でわくわくIoT~広がる無限の可能性~
kintone でわくわくIoT~広がる無限の可能性~
K K
 
Devとopsをつなぐpuppet
DevとopsをつなぐpuppetDevとopsをつなぐpuppet
Devとopsをつなぐpuppet
yuzorock
 
Flask入門
Flask入門Flask入門
Flask入門
aoshiman
 

What's hot (20)

IoTちっくなウェブサービスをつくるぞ!
IoTちっくなウェブサービスをつくるぞ!IoTちっくなウェブサービスをつくるぞ!
IoTちっくなウェブサービスをつくるぞ!
 
m5stackでメダカ餌やり機をつくった
m5stackでメダカ餌やり機をつくったm5stackでメダカ餌やり機をつくった
m5stackでメダカ餌やり機をつくった
 
kintone でわくわくIoT~広がる無限の可能性~
kintone でわくわくIoT~広がる無限の可能性~kintone でわくわくIoT~広がる無限の可能性~
kintone でわくわくIoT~広がる無限の可能性~
 
冷蔵庫ウォッチングサマータイム
冷蔵庫ウォッチングサマータイム冷蔵庫ウォッチングサマータイム
冷蔵庫ウォッチングサマータイム
 
IoTしてないけどウェブサービスをつくった
IoTしてないけどウェブサービスをつくったIoTしてないけどウェブサービスをつくった
IoTしてないけどウェブサービスをつくった
 
IoTLT65_とりあえず家の可視化をしてみた
IoTLT65_とりあえず家の可視化をしてみたIoTLT65_とりあえず家の可視化をしてみた
IoTLT65_とりあえず家の可視化をしてみた
 
Java→phpエンジニアに転向した話
Java→phpエンジニアに転向した話Java→phpエンジニアに転向した話
Java→phpエンジニアに転向した話
 
micropythonってたーのしー!
micropythonってたーのしー!micropythonってたーのしー!
micropythonってたーのしー!
 
第三回デジタルガジェット祭り! LT「ペットとセンサー編」
第三回デジタルガジェット祭り! LT「ペットとセンサー編」第三回デジタルガジェット祭り! LT「ペットとセンサー編」
第三回デジタルガジェット祭り! LT「ペットとセンサー編」
 
第18回 ビギナー勉強会のサルでき補足資料(iPhoneアプリ開発超入門)
第18回 ビギナー勉強会のサルでき補足資料(iPhoneアプリ開発超入門)第18回 ビギナー勉強会のサルでき補足資料(iPhoneアプリ開発超入門)
第18回 ビギナー勉強会のサルでき補足資料(iPhoneアプリ開発超入門)
 
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜
ヤンデレのUnityに愛されて眠れない〜Unity3分クッキング〜
 
Devとopsをつなぐpuppet
DevとopsをつなぐpuppetDevとopsをつなぐpuppet
Devとopsをつなぐpuppet
 
iOS 8/Swift エンジニア勉強会@ヤフー
iOS 8/Swift エンジニア勉強会@ヤフーiOS 8/Swift エンジニア勉強会@ヤフー
iOS 8/Swift エンジニア勉強会@ヤフー
 
micropythonで遊んでみる
micropythonで遊んでみるmicropythonで遊んでみる
micropythonで遊んでみる
 
20141218 お・と・なのlt大会
20141218 お・と・なのlt大会20141218 お・と・なのlt大会
20141218 お・と・なのlt大会
 
jsおじさん#5 ペッパーとjavascript
jsおじさん#5 ペッパーとjavascriptjsおじさん#5 ペッパーとjavascript
jsおじさん#5 ペッパーとjavascript
 
AITCオープンラボ IoTx総まとめ「IoTxロボット・AI開発をはじめよう!」
AITCオープンラボ IoTx総まとめ「IoTxロボット・AI開発をはじめよう!」AITCオープンラボ IoTx総まとめ「IoTxロボット・AI開発をはじめよう!」
AITCオープンラボ IoTx総まとめ「IoTxロボット・AI開発をはじめよう!」
 
第23回東京ブロガーミートアップ「動画について」
第23回東京ブロガーミートアップ「動画について」第23回東京ブロガーミートアップ「動画について」
第23回東京ブロガーミートアップ「動画について」
 
Flask入門
Flask入門Flask入門
Flask入門
 
Raspberry pi 3を使ってみてあれこれ
Raspberry pi 3を使ってみてあれこれRaspberry pi 3を使ってみてあれこれ
Raspberry pi 3を使ってみてあれこれ
 

Similar to Rubyでオリジナルプログラムをつくろう

個人開発 デプロイまでの道のり
個人開発 デプロイまでの道のり個人開発 デプロイまでの道のり
個人開発 デプロイまでの道のり
K K
 

Similar to Rubyでオリジナルプログラムをつくろう (20)

個人開発 デプロイまでの道のり
個人開発 デプロイまでの道のり個人開発 デプロイまでの道のり
個人開発 デプロイまでの道のり
 
ラジコンがネットと出会ったら
ラジコンがネットと出会ったらラジコンがネットと出会ったら
ラジコンがネットと出会ったら
 
JavaScriptで簡単IoT! RasPiをインターネットから制御するプラットフォームを作ったよ!
JavaScriptで簡単IoT! RasPiをインターネットから制御するプラットフォームを作ったよ!JavaScriptで簡単IoT! RasPiをインターネットから制御するプラットフォームを作ったよ!
JavaScriptで簡単IoT! RasPiをインターネットから制御するプラットフォームを作ったよ!
 
211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する211120 他人の書いたPythonスクリプトをステップ実行で理解する
211120 他人の書いたPythonスクリプトをステップ実行で理解する
 
エンジニアがプロダクト育成を始めるまでにやったこと
エンジニアがプロダクト育成を始めるまでにやったことエンジニアがプロダクト育成を始めるまでにやったこと
エンジニアがプロダクト育成を始めるまでにやったこと
 
Kobe.py 勉強会 minecraft piスライド
Kobe.py 勉強会 minecraft piスライドKobe.py 勉強会 minecraft piスライド
Kobe.py 勉強会 minecraft piスライド
 
20180829 ガチラボ vol.9
20180829 ガチラボ vol.920180829 ガチラボ vol.9
20180829 ガチラボ vol.9
 
Androidの新ビルドシステム
Androidの新ビルドシステムAndroidの新ビルドシステム
Androidの新ビルドシステム
 
Iotlt 28 HoloLensに日本語聞いてもらいたい
Iotlt 28 HoloLensに日本語聞いてもらいたいIotlt 28 HoloLensに日本語聞いてもらいたい
Iotlt 28 HoloLensに日本語聞いてもらいたい
 
CIのビルドを通知する仕組みをAndroidとFirestoreで作った話
CIのビルドを通知する仕組みをAndroidとFirestoreで作った話CIのビルドを通知する仕組みをAndroidとFirestoreで作った話
CIのビルドを通知する仕組みをAndroidとFirestoreで作った話
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
 
MicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみるMicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみる
 
Web BluetoothではじめるIoT Prototype
Web BluetoothではじめるIoT PrototypeWeb BluetoothではじめるIoT Prototype
Web BluetoothではじめるIoT Prototype
 
第二回東海北陸ロボコン交流会 豊田高専プレゼン
第二回東海北陸ロボコン交流会 豊田高専プレゼン第二回東海北陸ロボコン交流会 豊田高専プレゼン
第二回東海北陸ロボコン交流会 豊田高専プレゼン
 
Jumpwire.io @ Maker Faire Tokyo 2015
Jumpwire.io @ Maker Faire Tokyo 2015Jumpwire.io @ Maker Faire Tokyo 2015
Jumpwire.io @ Maker Faire Tokyo 2015
 
PukiWiki と Raspberry Pi と Arduino を連携させてIoT システムを作ってみた話
PukiWiki と Raspberry Pi と Arduino を連携させてIoT システムを作ってみた話PukiWiki と Raspberry Pi と Arduino を連携させてIoT システムを作ってみた話
PukiWiki と Raspberry Pi と Arduino を連携させてIoT システムを作ってみた話
 
ML system design_pattern
ML system design_patternML system design_pattern
ML system design_pattern
 
タミヤのカムロボを改造中 micro:bit編
タミヤのカムロボを改造中 micro:bit編タミヤのカムロボを改造中 micro:bit編
タミヤのカムロボを改造中 micro:bit編
 
初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)
初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)
初めての Raspberry pi 〜プラレールをunityの世界の中で走らせよう〜 (1)
 
WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3
 

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