[お題にTRY] じゃんけんゲーム #Ruby

こんにちわ。
ジャンケンという言葉の英語は無い事を今頃知った、下駄です。
単純に「rock,Sissor,paper」と言っているようですが、日本語で言うと「グー、チョキ、パー」ですね・・・
そんな事を考えていると、「ジャンケン」の言葉の由来を知りたくなって調べてみたら、
二人で行うから、「両拳」(りゃんけん) が変形したのではないか(諸説あり)、と言われているとわかりました。
よくよく考えると、ジャンケンのネーミングセンスって、良いですよね。
本日のIT謎掛け
「ジャンケン」と、かけまして
「味噌汁品評会」と、ときます。
そのココロは・・・
最初はグー(具)を出すと、テンポが良いよ。
Rubyのジャンケンプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
spr = ["グー" , "チョキ" , "パー"] print("じゃんけん : [0:グー 1:チョキ 2:パー] : ") my_spr = gets.to_i print("あなたの出した手は、%sです。\n" % spr[my_spr]) com_spr = rand(0..2) print("コンピュータの出した手は、%sです。\n" % spr[com_spr]) def spr_mutch(my_spr , com_spr) if my_spr == com_spr then return "draw" elsif my_spr == 0 && com_spr == 1 then return "win" elsif my_spr == 1 && com_spr == 2 then return "win" elsif my_spr == 2 && com_spr == 0 then return "win" else return "lose" end end result = spr_mutch(my_spr , com_spr) def result_str(result) if result == "win" then return "あなたの勝ちです。" elsif result == "lose" then return "あなたの負けです。" else return "引き分けです。" end end p result_str(result) |
実行と解説
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ ruby janken.rb じゃんけん : [0:グー 1:チョキ 2:パー] : 1 あなたの出した手は、チョキです。 コンピュータの出した手は、パーです。 "あなたの勝ちです。" $ ruby janken.rb じゃんけん : [0:グー 1:チョキ 2:パー] : 1 あなたの出した手は、チョキです。 コンピュータの出した手は、グーです。 "あなたの負けです。" $ ruby janken.rb じゃんけん : [0:グー 1:チョキ 2:パー] : 1 あなたの出した手は、チョキです。 コンピュータの出した手は、チョキです。 "引き分けです。" |
Rubyって、Pythonとかなり、似通った言語ということがわかります。
多少の構文の違いがありますが、構成などは似通っているので、移植作業が非常にしやすいです。
とは言っても、しっかりと言語特性を覚えないといけないので、rubyのprint文関係の”p”を使って結果表示をしてみたりしました。
まとめ
rubyとpythonは、非常にスッキリとしたコードが書けるので、書いていても見ていてもなんとなく安心感があるのは、自分だけでしょうか?
pythonと大きく違うのは、細かくimportしてライブラリを読み込む必要がないので、気兼ねなく機能が使える点ですかね?
無駄なライブラリを抱え込んで重くなるという考え方もあるようですが、ポイントをどこに置くかによります。
もしかしたら、場面場面で言語を切り替えるというのもアリなのかもね。