読者です 読者をやめる 読者になる 読者になる

Uni-Q blog

うにきゅう ぶろぐ

日本Rubyのチュートリアルα版に行ってきた(とりあえずジャンケン編)

Ruby

「日本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にコード置きました。


ruby-tutorial-alpha/janken.rb at 4ee59a23d64e49cbd67dc9a696d524a7b9f80e5a · uni-q/ruby-tutorial-alpha · GitHub