「日本Rubyのチュートリアル」を行うとしたら… という実験に生徒として参加してきました。
http://ruby-no-kai.doorkeeper.jp/events/2969
最初の各自の自己紹介で、みなさんJavaとか書かれてるみたいで、ビビりましたが そこは臆さず進もう!…ということで。
いきなり実践
じゃんけん「ぐー」「ちょき」「ぱー」がランダムに出るのを作るのが課題
$ ruby janken.rb グー $ ruby janken.rb パー
↑こんな感じのを作りましょう、と。
やばい、いきなりサッパリ分かりませんっっ!
先生に「irbを起動してください」と言われました。
ターミナルで「irb」と打つと…
> 2+3 => 5
ほうほう、計算できるらしい。
Chromeの開発ツールのコンソールみたいなモードになのかー。
そういえば、某本に書いてあった…と思い出した。
乱数は「rand」を使う、とのこと。
> rand(5) => 1
どうやら「5」とやると、0〜4の数字をランダムで出してくれるみたい。
今回はぐーちょきぱーなので、「0,1,2」の3つの数字が出ればいいか。
> rand(3)
…で、出された数字を 「0」→「gu」 「1」→「pa」 「2」→「choki」 としたいなあ、と考えました。
javascriptで配列っていうのがあったなー。
っていうのを思い出した。 配列っぽく入れてみたら動くかしら…
> rand ( "gu", "pa" "choki")
なにかエラーっぽいのが帰ってきた。。(TT)
配列の名前を付けてあげないといけなんだ…。
「te」っていう名前で配列を作ってあげます。
> te = ["gu", "pa", "choki"] => ["gu", "pa", "choki"]
うまくいったみたい。
> te.class => Array 「Array」
っていう事は「配列」。 うむ…!
> te[1] => "pa"
「te」の1号室の表札は「pa」だよ。 ちゃんと出力されてます。
こんなイメージが閃いた。 「te」っていうマンションに、「ぐー」「ちょき」「ぱー」を住まわせる
↓
部屋番号で呼び出したいので、部屋番号を表現する「何か」を作ってあげる。「janken」って名前にした。
↓
「te」から、その部屋番号を呼び出す
↓
部屋によって、「ぐー」「ちょき」「ぱー」の誰かが出てくる
> te = ["gu", "pa", "choki"] => ["gu", "pa", "choki"]
↑
ぐー、ちょき、ぱーが、各部屋に住んでる。
> janken = rand(3) => 1
↑「janken」が、0になったり1になったり2になったりする。
te[janken] => "pa"
↑「1」号室が選ばれたので、「pa」のお部屋だったね。
…これをrbファイルにする。
#coding: utf-8 te = ["グー", "パー", "チョキ"] janken = rand(3) puts te[janken]
日本語をOKにするには、最初に「#coding: utf-8」って入れる必要があるみたい。 githubにコード置きました。