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

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

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

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

Q&A

解決済

1回答

1163閲覧

読み込んで、定義した文字の表示

yusuke.

総合スコア66

Ruby

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

0グッド

0クリップ

投稿2016/07/05 09:04

編集2016/07/05 09:21

エラーメッセージは出ていません。
なぜ、この$mondaiなどが表示されないのでしょうか。問題ファイルからうまく読み込むことができていないのでしょうか。
白い画面しか出てきません。
追記
$mondaiを、別の文字に変えてみても表示されていなかったようなので、読み込みができてないのではないと思います。

ruby

1#!ruby -Ks 2require "sdl" 3require "./color.rb" 4 5 6class Gmen 7 WINDOW_YOKO = 750 8 WINDOW_TATE = 550 9 BITPIKUSERU = 0 10 11 12 def initialize 13 SDL.init(SDL::INIT_EVERYTHING) 14 @screen2 = SDL.set_video_mode(WINDOW_YOKO,WINDOW_TATE,BITPIKUSERU,SDL::SWSURFACE) 15 SDL::TTF.init 16 @font = SDL::Kanji.open("font/jiskan24.bdf",24) 17 @font.set_coding_system(SDL::Kanji::SJIS) 18 end 19 20 def drawBack 21 @screen2.fill_rect(0,0,WINDOW_YOKO,WINDOW_TATE,Color::WHITE) 22 end 23 24 def refresh 25 @screen2.update_rect(0,0,0,0) 26 end 27 28 def start 29 @font.put(@screen2,"今から問題が出てきます。問題によって、スコアが異なります。",50,30,0,0,0) 30 @font.put(@screen2,"正解だと思う選択肢の番号のキーボードを押してください。",50,70,0,0,0) 31 @font.put(@screen2,"始めるには何かキーを押してください。",50,120,0,0,0) 32 end 33 34 def mondaihyouji 35 @font.put(@screen2,"#{$mondai}",200,300,255,255,255) 36 @font.put(@screen2,"#{$sentaku1}", 570,300,255,255,255) 37 end 38 39end 40 41def yomikomi() 42 i = 0 43 j = 0 44 $moji =[] 45 f = open("./dat/mondai1.dat","r") 46 while text = f.gets do 47 $moji[i] = text.chomp 48 i += 1 49 end 50 f.close 51 $mondaisu = i/8 52 while j <= i/8 53 eval("$q#{j} = [ $moji[j*8+0],$moji[j*8+1],$moji[j*8+2], $moji[j*8+3],$moji[j*8+4],$moji[j*8+5],$moji[j*8+6],$moji[j*8+7 ] ]") 54 j += 1 55 end 56end 57 58def mondai 59 q = [] 60 eval("q = $q#{rand($mondaisu)}.clone") 61 $mondai = q[0] 62 $sentakusi1 = q[1] 63 $sentakusi2 = q[2] 64 $sentakusi3 = q[3] 65 $sentakusi4 = q[4] 66 $sentakusi5 = q[5] 67 $kotae = q[6] 68 $score = q[7] 69end 70 71 72def gamen 73 yomikomi 74 mondai 75 kuizugamen = Gmen.new 76 kuizugamen.drawBack 77 kuizugamen.refresh 78 kuizugamen.mondaihyouji 79end 80

ほかに必要なところがあれば言ってください。
ちなみにほかのファイルでgamenを実行させています。

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

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

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

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

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

guest

回答1

0

ベストアンサー

白い画面に対して、文字をで書いているからです。

Ruby

1@font.put(@screen2,"#{$mondai}",200,300,255,255,255)

最後の3つのパラメータで色指定になります。順に「赤」、「緑」、「青」の発色の度合いを示し、3つ全てが「255」になると「白」になります。
試しに、

Ruby

1@font.put(@screen2,"#{$mondai}",200,300,0,0,0)

としてみてください。文字が黒で書かれるはずです。
(多分、startメソッドで表示しているメッセージはちゃんと表示されているんじゃないかな)

投稿2016/07/05 12:34

archiver

総合スコア1557

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

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

yusuke.

2016/07/07 08:00

回答ありがとうございます。 確かに表示できたのですが、問題と答えが、ばらばらに変数にあてはめられているようで、問題を表示したいときに答えが出てきたりします。どこをどう直せばいいのでしょうか。 次々と質問すいません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問