前提・実現したいこと
Rubyで複数人によるジャンケンプログラムを作っています。
実現したい機能としては、
・三人以上のプレイヤー(最大100人まで)でじゃんけんを行う。
・人数は自由に決めることができる。(可変長)
・その人数でじゃんけんを100回行いその結果(何で何回勝ったのかあるいは何回ひきわけたのか)を出力する。
、
そこで、二つ目の機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
janken.rb:22:in `block (2 levels) in <main>': undefined method `[]' for nil:NilClass (NoMethodError)
該当のソースコード
Ruby
1 2puts "ジャンケンを開始します。" 3count_rock = 0 4count_scissors =0 5count_paper =0 6 7count_r_w =0 8count_s_w =0 9count_p_w =0 10count_draw =0 11 12player =[][3..100] 13 14 15for i in 0..99 do 16 puts "対戦する人数を教えてください。" 17 num = gets.to_i 18 19 for j in 1..num do 20 21 player[i][j] = rand(0..999)%3 22 if player[i][j]==0 23 count_rock+=1 24 elsif player[i][j]==1 25 count_scissors+=1 26 else 27 count_paper+=1 28 end 29 30 #puts "#{plyer[i][j]}" 31 32 if j==num 33 if count_rock==num 34 count_draw+=1 35 elsif count_scissors==num 36 count_draw+=1 37 elsif count_paper==num 38 count_draw+=1 39 elsif count_rock==0&&count_scissors !=num 40 count_s_w+=1 41 elsif count_scissors==0&&count_paper !=num 42 count_p_w+=1 43 elsif count_paper==0&&count_rock !=num 44 count_r_w+=1 45 else 46 count_draw+=1 47 end 48 49 count_rock =0 50 count_scissors =0 51 count_paper =0 52 53 puts("#{j}人 グー チョキ パー 引き分け") 54 puts("勝数 #{count_rock}回 #{count_scissors}回 #{count_paper}回 #{count_draw}回") 55 puts("________________________________________________________________________") 56 end 57 end 58end
試したこと
二次元配列の宣言があまりよくわからずいろいろ調べましたが、結果わからないままです。
補足情報(FW/ツールのバージョンなど)
Ruby
1ruby 2.6.3p62 (2019-04-16 revision 67580) [x64-mingw32]
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/23 09:09
2019/11/23 09:51
2019/11/23 10:19