Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

Ruby

【Ruby】じゃんけんプログラムの作り方を学ぼう|初心者が学習のアウトプットとしても最適な演習問題に挑戦しよう

Ruby じゃんけんプログラム

動画で解説を見る



開発環境

  • Ruby version: ruby 3.1.2

Rubyのじゃんけんプログラムとは

じゃんけんとは、3種類の指の出し方で強弱関係を構成し、その相性により勝ち負けを争う遊びです。

プログラミングにおいて「グー・チョキ・パー」の勝敗を判定する最適なアルゴリズムを考えるだけでなく、オブジェクトをどのように構成するかなども重要になってきます。

そのため、じゃんけんプログラムは簡単なようで奥が深いため、プログラミング初心者だけでなく学習のアウトプットとしても演習問題として主題されることが多いです。

Wikipedia:https://ja.wikipedia.org/wiki/%E3%81%98%E3%82%83%E3%82%93%E3%81%91%E3%82%93

Rubyのじゃんけんプログラムのチュートリアル

じゃんけんプログラムにチャレンジするにあたり、じゃんけんプログラムのルールを定義します。

じゃんけんプログラムのルール

  • 指の出し方は「グー、チョキ、パー」の3種類とする
  • 勝敗の結果は「勝ち、負け、あいこ」の3種類とする
  • 勝敗にかかわらずじゃんけんは1度のみとする
  • プレイヤーに指の出し方を決めさせることとする
  • コンピューターはランダムに指の出し方を決めさせることとする

じゃんけんプログラムのサンプルコード

Rubyのじゃんけんプログラムのサンプルコードは下記になります。

じゃんけんプログラムの実行結果

Rubyのじゃんけんプログラムの実行結果は下記になります。

Rubyのじゃんけんプログラムの解説

じゃんけんプログラムを順番に解説していきます。

じゃんけんクラスを定義する

まず、じゃんけんクラスを定義します。

じゃんけんクラスを定義をすることにより、そのなかにどのような処理をするかのロジックをまとめることができます。

じゃんけんに必要な最初の処理をメソッド化する

次に、じゃんけんに必要な最初の処理をメソッド化します。

initializeは特別なメソッドですが、「class.new」とすることにより、インスタンスが生成されるときに自動的にinitializeメソッドが呼び出されます。

gets.chomp.to_iで入力を受け付けるようにして置き、入力されたものは@inputへ代入されるようにしています。

また、「0,1,2」以外の数字が入力された場合は正確に判定ができないため、whileメソッドにより「0,1,2」が正確に入力されるまで繰り返し処理を行うようにしておきます。

じゃんけんの勝敗を判定する処理をメソッド化する

次に、じゃんけんの勝敗を判定する処理をメソッド化します。

じゃんけんクラス内に定義したことにより、クラスのインスタンスオブジェクトに対して「judgement」というインスタンスメソッドを実行することができます。

また、変数hand_typeにじゃんけんの指の形を配列で定義しておくことにより、配列のインデックス番号を入れると指の出し方を決めることができるようにしています。

if文では「あいこ、勝ち、負け」の勝敗を判定することができるように3種類の条件分岐を組み合わせています。

じゃんけんのプログラムを実行する

最後にじゃんけんのプログラムを実行します。

initializeメソッドにより「class.new」でインスタンスが生成されるときに自動的にinitializeメソッドが呼び出され、変数jankenに代入されている状態です。

その後、代入された変数judgementに対して「janken.judgement」とすることにより、クラスのインスタンスオブジェクトに対してjudgementメソッドを実行することができるという流れになります。

おわりに

Rubyのじゃんけんプログラムのチュートリアルを解説してきましたが、いかがだったでしょうか。

今回はじゃんけん往路グラムの参考として私のサンプルコードをご紹介させていただきましたが、じゃんけんプログラムの処理のやり方は様々です。

また、今回のじゃんけんプログラムのルールは簡単なものにしましたが、さらにプレイヤーが勝利する確率を定義したり、勝率を蓄積したり、プレイヤーが必ず勝てるようにするなどしても面白いです。

もし余裕があれば、是非、じゃんけんプログラムを拡張させた「あっち向いてホイ」にもチャレンジしてみてください。

Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

-Ruby