ご覧いただきありがとうございます。
現在、コマンドプロンプト(ターミナル)で計算ゲームをするプログラムを作っています(おもに練習用です)
まだrubyの勉強初めて一週間もたっていないので知識がばがばで恐縮です(少しだけjavascriptは触れていました)
問題を出題し、結果をreturnするところまでは出来てます。
各問題の配列をlengthで取得したものを変数に代入し、%で出す場合はいったん100倍にする必要がある為
配列length*100/正解数
で出そうとしていますが、うまく実行できません。
また、正解数は、countで計算して出そうとしています。
意図したとおりに結果を出力するには、いったいどうしたらよろしいのでしょうか?
ruby
1# coding: utf-8 2 3x=rand(10) 4y=rand(5) 5z=(15) 6 7 8 9puts "ready?" 10 11def ques(a,b) 12 return puts "#{a}*#{b}は?" 13end 14def ans(a,b) 15 return a*b 16end 17 18 19def lops(a,b) 20 puts ques(a,b) 21 answer=gets.chomp.to_i 22 23 if answer==ans(a,b) 24 return puts "clear" 25 else 26 return puts "error!" 27 end 28end 29 30# 31# 32# 33 34def ques3(a,b,c) 35 return puts "#{a}*#{b}+#{c}は?" 36end 37def ans3(a,b,c) 38 return a*b+c 39end 40 41 42def lops3s(a,b,c) 43 puts ques3(a,b,c) 44 answer=gets.chomp.to_i 45 46 if answer==ans3(a,b,c) 47 puts "clear!" 48 else 49 puts "error!" 50 end 51end 52 53$count 54setready=gets.chomp 55 56if setready=="yes" 57 checks=1 58 lopsblock=[lops(x,y),lops(y,z),lops(z,x),lops3s(x,y,z)] 59 lopslength=lopsblock.length.to_f 60 puts 61 lopsblock.each do|a| 62 $count+=1 if a=="clear!" 63 end 64 end 65 66 if checks==1 67 total=lopslength*100/$count.to_f 68#変数と数字の掛算、割り算でエラーになる。 69#また、lopslengthのlength取得もできていないため、正確な計算ができない 70 71 72 puts "あなたの正解率は、#{total}%です。" 73 end 74
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/11 00:01
退会済みユーザー
2017/05/11 05:51 編集
2017/05/11 05:55
2017/05/11 06:42
退会済みユーザー
2017/05/11 07:08
2017/05/11 07:11