モブプロの練習のために作った課題です。オブジェクト指向プログラミングで作成することを想定しています。
- 基本人数: プレイヤー1とプレイヤー2の2人
- じゃんけんの手: グー、チョキ、パーの3種類
- グーはチョキに勝つ
- チョキはパーに勝つ
- パーはグーに勝つ
- 2人の手が同じ場合は「あいこ」となる
- 複数回じゃんけんを行う場合は、1回じゃんけんに勝つ度に10点得点が入る(後述)
# これは一例です。
hand = Hand.new
hand.throw # => チョキ
- プレイヤー1の視点で
勝ち
負け
あいこ
のいずれかを出力する
$ janken.rb
# プレイヤー1: パー プレイヤー2: グー のとき
勝ち
# プレイヤー1: パー プレイヤー2: チョキ のとき
負け
# プレイヤー1: パー プレイヤー2: パー のとき
あいこ
- 勝敗が決まった場合
$ ruby janken.rb
(プレイヤー1) グー (プレイヤー2) チョキ
プレイヤー1: 10点
プレイヤー2: 0点
- 「あいこ」の場合
あいこ!
と表示させる
$ ruby janken.rb
(プレイヤー1) グー (プレイヤー2) グー
あいこ!
プレイヤー1: 0点
プレイヤー2: 0点
- n回目じゃんけんのときは行頭に
<n回目>
と表示させる - 5回じゃんけんが終わった後は、得点から最終的な勝敗を表示させる(引き分けの場合は
引き分け!
と表示する) - 得点の表示は1回のじゃんけんの得点ではなく累積したのもを表示する
$ ruby janken.rb
<1回目>
(プレイヤー1) グー (プレイヤー2) チョキ
プレイヤー1: 10点
プレイヤー2: 0点
<2回目>
(プレイヤー1) グー (プレイヤー2) チョキ
プレイヤー1: 20点
プレイヤー2: 0点
<3回目>
(プレイヤー1) グー (プレイヤー2) グー
あいこ!
プレイヤー1: 20点
プレイヤー2: 0点
・・・(中略)・・・
<5回目>
(プレイヤー1) チョキ (プレイヤー2) グー
プレイヤー1: 30点
プレイヤー2: 10点
<最終結果> プレイヤー1の勝ち!!!
- プレイヤー名を任意の名前を設定できる
- じゃんけん1回に対する試行回数を参照できる
- 最終結果に対する累積の勝ちの数を表示できる。
player1 = Player.new('太郎')
player1.name #=> 太郎
player1.janken_count #=> 35
player1.win_count #=> 6
$ ruby janken.rb
<1回目>
(太郎) グー (花子) グー
あいこ!
太郎: 0点
花子: 0点
<2回目>
(太郎) グー (花子) グー
あいこ!
太郎: 0点
花子: 0点
<3回目>
(太郎) グー (花子) グー
あいこ!
太郎: 0点
花子: 0点
3回連続あいこになったのでじゃんけんを中止します。
<最終結果> 引き分け!!!
- 加算されるのは最初の1回のみで、それ以降の負けは同じ手で負けたとしても得点は加算されないものとします。
- 加算されるタイミングは2回目の負けのときに加算されるものとします。