日本Rubyのチュートリアルa版に行ってきました!

コーチから頂いた六花亭のバターサンド (だいすき!) を食べつつ自己紹介をして、さっそくウォーミングアップの問題にとりかかりました。 ランダムでじゃんけんの手を出力するプログラムを作ってみよー。というやつ。
うえあー
普段Railsしかやっていないので、Rubyだけでプログラム書くことに身構える。
しかもインターネットが繋がらなかったのでリファレンスマニュアル引けない(∵ )
ちょー身構える。
よしっ書くぞ。

じゃんけんの手をランダム?ってことは shffule? ってことは配列?ってなんか考える順番ちがう気がする。 でもとりあえず書けました。

hands = %w(パー グー チョキ)
puts hands.shuffle.first

できた!と思ったときに、コーチからヒントが。

randっていうメソッドを使うと乱数がとれます。
rand(3)ってやると「0」か「1」か「2」が返ってきます。

およよ..数字返ってきてどうするの…

あーーなんか配列って数字使うと要素取れるんだっけかなー... って、このエピソードを今日会社の先輩に話したら 「配列に添字でアクセスすることないもんね」って笑ってた! そうそう、そーなの!

そして、このじゃんけんの一番簡潔な答えは

%w(パー グー チョキ).sample

おおおおーーーーさんぷる! おもろーーー

---------------------------(・∀・)---------------------------

続きまして。お釣りの札と硬貨の枚数を出力しましょう問題。
1456円の買い物で2000円を出したときのお釣り

【お釣りの枚数】
10000円:0枚
5000円:0枚
1000円:0枚
500円:1枚
100円:0枚
50円:0枚
10円:4枚
5円:0枚
1円:4枚

みたいな。

gets.chomp でコマンドラインから入力したものを取ってこれるよー
to_i で Integer に変換できるよー
というヒントは最初から与えられました。

とりあえず価格と支払額を変数に入れようか。
そんでお釣りも計算しとこう。

print '何円の買い物をしましたか:'
price = gets.chomp.to_i

print '何円だしましたか:'
payment = gets.chomp.to_i

change = payment - price

でっていう。
ヨッシーじゃなくて、どちらかというと窪塚の

でっていう。

自分がレジ係だとして、お釣り渡す時どうすんのー?って聞かれて考える。
とりあえずレジにお釣りの金額が出るよね。
わたしはお釣りよりもさきにスタンプカードを返す派なので「お先にスタンプカードお返しいたします。」って言う。 それでお釣りが544円だったら、500円1枚と10円4枚と1円4枚取って、レシートの上に乗せて 「544円のお返しでございます。ありがとうございましたー」って
えーどうやってるかな。どうって。わたしどうやってんのー。
うーん無意識。無意識だな。天才だなー。

ってなって、そこからは、もうほとんど答え教えてもらってしまいました…とほほ

大きい方、つまり10000円から割り算していけばでるんすよ。
余剰をさらに割っていけばいいんですよ。
プログラミングというか算数の問題らしいです。はうぅ。

で、10000円から eachでまわしていって、結果をね、どこかにね、入れておこうとね、思ったんですけどね、 とりあえず表示してみなよってアドバイスを頂いて、
うん、え、あ、おお、each の中で puts するのか! そうだよね。表示できればいいんだもんね。ってなんか、いつもとやってること違う感がむっちゃありました。

あーつかれた!あーおもしろかった!
あっという間に時間が過ぎてしまって、もう終わりかーーーという感じ。
見直してみれば、めちゃくちゃ簡単なコード…
でも思いつかんかったら書けんのよー

で、そのほかにも2問用意されていたので 問題のプリントもらって帰ってきました!

文字列を2つ渡してアナグラムかどうかを調べるプログラム
野球の試合結果を記録していって勝敗を出力するプログラム。

アナグラムの方はやりました!できました! テストもかいたお。赤ペン先生に添削してもらうんだー。 絶対お釣りの問題の方が難しいと思ったんだけど、それってやっぱり算数が苦手ってこと? 理数系への憧れとこんぷれっくす。

でもおもしろいねー、ねーねーこうゆうの面白いね。

参加できてよかった。 ありがとうございました!