質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

1423閲覧

入力した数字と答えを合わせる

yusuke.

総合スコア66

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2016/07/20 07:11

クイズのようなプログラムを作りたいです。
問題などは、ほかのファイルから読み込んで表示させ、その問題に合う答えを入力できるようにしたいです。
次の文ではうまく判定してくれないのですが、エラーメッセージも出ずに、フリーズしてしまいます。

ruby

1#!ruby -Ks 2require "sdl" 3require "./color.rb" 4 5 6 7$tisiki = 0 8 9 10 11 12 13class Gmen 14 WINDOW_YOKO = 750 15 WINDOW_TATE = 550 16 BITPIKUSERU = 0 17 18 19 def initialize 20 SDL.init(SDL::INIT_EVERYTHING) 21 @screen2 = SDL.set_video_mode(WINDOW_YOKO,WINDOW_TATE,BITPIKUSERU,SDL::SWSURFACE) 22 SDL::TTF.init 23 @font = SDL::Kanji.open("font/jiskan24.bdf",24) 24 @font.set_coding_system(SDL::Kanji::SJIS) 25 @font2 = SDL::TTF.open("C:/WINDOWS/Fonts/TAHOMA.TTF",30) 26 end 27 28 def drawBack 29 @screen2.fill_rect(0,0,WINDOW_YOKO,WINDOW_TATE,Color::WHITE) 30 end 31 32 def refresh 33 @screen2.update_rect(0,0,0,0) 34 end 35 36 def kotaeawase 37 a = gets.chomp 38 @font.put(@screen2,"入力した数字#{a}",50,280,0,0,0) 39 if a == $kotae.to_i 40 $tisiki = $tisiki.to_i + $score.to_i 41 @font.put(@screen2,"正解です",50,250,0,0,0) 42 @font.put(@screen2,"正解は#{$kotae}です。",50,220,0,0,0) 43 else 44 @font.put(@screen2,"間違いです。",50,250,0,0,0) 45 @font.put(@screen2,"正解は#{$kotae}です。",50,220,0,0,0) 46 end 47 end 48 49 50 51 while true do 52 while event = SDL::Event2.poll 53 case event 54 when SDL::Event2::Quit 55 exit 56 when SDL::Event2::KeyDown 57 if event.sym == SDL::Key::SPACE then 58 yomikomi 59 drawBack 60 mondaihyouji 61 @font.put(@screen2,"数字を入力してください。",50,220,0,0,0) 62 refresh 63 kotaeawase 64 refresh 65 end 66 end 67 end 68 end 69 end 70 71 def mondaihyouji 72 @font.put(@screen2,"#{$mondai}", 50,20,0,0,0) 73 @font.put(@screen2,"#{$sentakusi1}", 50,50,0,0,0) 74 @font.put(@screen2,"#{$sentakusi2}", 50,80,0,0,0) 75 @font.put(@screen2,"#{$sentakusi3}", 50,110,0,0,0) 76 @font.put(@screen2,"#{$sentakusi4}", 50,140,0,0,0) 77 @font.put(@screen2,"#{$sentakusi5}", 50,170,0,0,0) 78 @font2.draw_solid_utf8(@screen2," #{$tisiki}",100,500,0,0,0) 79 end 80end 81 82

caseのところでスペースキーが押されているかを調べて押されていると問題を表示していくようにしたいです。ほかのところで実行しています。いらない部分は消してあります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

a = STDIN.getchを使うことで読み込みました。
しかしこれだと、コマンドプロンプトに答えを入力しなければならないことになってしまいます。
なにかいいほうほうはないでしょうか

投稿2016/07/22 01:30

yusuke.

総合スコア66

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問