• 締切済み

javaでクイズ

最初の問題(最初の画面) (1) (2) (3) ↓ ↓ ↓ × × ○     第二問     (1) (2) (3)     ↓ ↓ ↓     ○ × × 第三問 (1) (2) (3) ↓ ↓ ↓ × × ○      第四問      (1) (2) (3)      ↓ ↓ ↓      × × ○          第五問          (1) (2) (3)          ↓ ↓ ↓          × ○ ×            第六問 (1) (2) (3)            ↓ ↓ ↓            × × ○                第七問 (1) (2) (3)                ↓ ↓ ↓                ○ × × というクイズのプログラムを作ろうとしています。 画面数は全部で22ページあって(一番初めの画面は00という名前にしてあります)正解ページと次の問題画面が一緒なので22ページになります。実際ページにつけた番号は21までですが・・・ 間違った答えのページに行くと「previous」で前の画面に戻ったり、間違った答えのページでは下に表示してある回答ボタンを押せないようにしたりしたいです。一画面一画面ifで設定する必要があるのでしょうか?

みんなの回答

  • zozy
  • ベストアンサー率60% (20/33)
回答No.2

あなたはどの程度できるのでしょうか? それによって解答が変わってきますので。 そして、そもそも何で作りたいのでしょうか? AWT,swingなどを使ってアプリケーションを作りたいのか? サーブレット,JSPを使ってweb動くものを作りたいのか? とりあえず、AWTで既存のコンポーネント(ボタンなどの部品)を使わず作ってみましたので参考にしていただけると幸いです。 package gui; import java.applet.Applet; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Image; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; public class Quiz extends Applet implements MouseListener{ //この中には問題文を書きましょう。 //なお、改行コードは\nです final String[] question={"1+1=?","5-2=?","3*5=?","24/6=?"," "}; //この中には正解を書きましょう。 final String[] answer={" ","2番が正解\n1+1=2","1番が正解\n5-2=3", "3番が正解\n3*5=15","1番が正解\n24/6=4"}; //回等の選択肢 final String[][] select={{"1) 1","2) 2","3) 3"} ,{"1) 3","2) 4","3) 5"} ,{"1) 9","2) 12","3) 15"} ,{"1) 4","2) 5","3) 6"} ,{" "," "," "}}; //正解の番号 final int[] seikai={1,0,2,0}; //各問題で何番を選択したか //question.lengthは問題数 int[] choice=new int[question.length]; //点数 int point; //現在のページ int index=0; //lock==trueになると再回答できなくなる boolean[] lock=new boolean[question.length]; //ダブルバッファのために宣言 //ダブルバッファ処理をすることで //画面のちらつき防止になる Graphics gr; Image img; public void init(){ //画面のサイズ設定 setSize(300,300); //マウスリスナの追加 addMouseListener(this); //フォントの設定 setFont(new Font("MS UI Gothic",Font.PLAIN,30)); //ダブルバッファ処理 img=createImage(240,480); gr=img.getGraphics(); } //描画処理 public void paint(Graphics g){ if(index<question.length){ //解答欄の背景描画 g.setColor(new Color(255,128,128,128)); g.fillRect(0,0,300,90); //問題欄の背景描画 g.setColor(new Color(128,128,255,128)); g.fillRect(0,90,300,90); g.setColor(new Color(128,255,255)); //解答の描画 g.drawString(answer[index],0,25); g.setColor(new Color(255,255,128)); //問題の描画 g.drawString(question[index],0,115); //選択中の選択肢のフォントカラーを変化 for(int i=0;i<3;i++){ if(choice[index]==i)g.setColor(new Color(255,255,0,128)); else g.setColor(new Color(0,0,0)); g.drawString(select[index][i],0,i*30+205); } //前のページへボタンの背景描画 g.setColor(new Color(255,128,128,128)); g.fillRect(0,270,150,30); //次のページへボタンの背景描画 g.setColor(new Color(128,128,255,128)); g.fillRect(150,270,150,30); g.setColor(new Color(0,0,0)); //前のページへボタンの文字描画 g.drawString("前のページへ",0,295); //次のページへボタンの文字描画 g.drawString("次のページへ",150,295); //結果表示のページの描画 }else{ g.setColor(new Color(0,255,0)); g.fillRect(0,0,300,300); g.setColor(new Color(255,0,0)); g.setFont(new Font("MS UI G0thic",Font.BOLD,50)); g.drawString("ポイント:".concat(String.valueOf(point)),0,150); } } //マウスがクリックされたときの処理 public void mouseClicked(MouseEvent e){ //最終問題ページでクリックしたら結果表示ページにいく if(index==question.length-1)index++; //選択肢をクリックするとその選択肢を選択する for(int i=0;i<3;i++){ if(e.getY()>i*30+180&&e.getY()<i*30+210&&lock[index]==false)choice[index]=i; } //前のページへボタンを押すと前のページに戻る if(index>0&&e.getY()>270&&e.getX()<150)index--; //次のページへボタンを押すと if(index<question.length-1&&e.getY()>270&&e.getX()>150){ //このページの回答をできないようにする lock[index]=true; //選択した答えと解答が同じなら点数を追加 if(seikai[index]==choice[index])point++; //次のページへ進む index++; } //再描画処理 repaint(); } public void mousePressed(MouseEvent e){} public void mouseReleased(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} }

tf0811
質問者

お礼

回答ありがとうございます。 初心者なのでうまく説明できなくてすみません。 質問をもうひとつ載せたので回答していただけるとありがたいです。

全文を見る
すると、全ての回答が全文表示されます。
  • Gizensha
  • ベストアンサー率34% (207/608)
回答No.1

問題の表示と回答を受け付ける部分はループできる構造にして、毎回データを差し替えられる構造にすれば >一画面一画面ifで設定する必要があるのでしょうか? この必要はなくなりますね。 何となくJavaScriptな質問に感じるのは私の気のせいでしょうか。

tf0811
質問者

お礼

おそらくJavaScriptです。 コマンドプロンプトを使ってコンパイルしたいです。 質問をもうひとつ載せたので回答していただけるとありがたいです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • クイズCGI

    10個の選択肢があるクイズを作っています。 プログラムは $問題番号=ユーザーの回答番号 という形でPOSTデータを取得します。 それで、現在1つ1つ if ($問題番号 == 正答番号) { 正解時の処理 } という文で処理を書いているのですが、問題が400近くあり、頻繁に問題を変更するので できればクイズの答えが次の形式で収録されている「test.csv」を使ってforeachあたりで 繰り返しを使いたいのですが…うまく動かすことができません。 問題番号,問題,正答番号 知恵を拝借願えないでしょうか。

  • iアプリでクイズのプログラムを作成したい

    多肢選択式クイズのiアプリを作成したいと考えております。サーバ上のテキストファイルから問題と答えを読み込んで1問ずつ表示し、正解すると正解と表示した後に次の問題へ、不正解の場合は正しい答えを表示した後に次の問題へ進むようにし、すべての問題が終わったら正答数を表示するような感じで、問題は上記のように多肢選択式にしたいと考えております。 色々と本やwebページを見て、サーバ上のテキストファイルを単純に読み込むだけのプログラムや、ボタンを押す毎にPanelを切り替えるプログラムなど、簡単なプログラムは作ることができるようになったのですが、ここで行き詰まってしまいました。 どのようにすればよいか教えてください。お願いします。

  • javascriptでクイズ

    HP上で簡単なクイズのページを作りたいのですが、 私はjavascript初心者なのでさっぱり分かりません。。。 --内容としてはこんな感じです----------- 3択クイズでラジオボタンをつける。 全部で5問くらいを5つの枠にわけ1ページに表示 「回答する」ボタンで判定 全問正解なら別ページにリンク。 不正解の場合はその箇所の背景の色を変える。 ----------------------------------------- ちょっと分かりにくくてすみません・・・ ご回答いただけると、とっても助かります! よろしくお願いいたします。

  • JavaScriptで簡単なクイズを作りたいんですが

    今HPを作っていて簡単なクイズを入れたいのですが JavaScriptを使ってしようと思ったのですが行き詰りました・・・ クイズの形式は問題をあらかじめ書いていて テキスト部分に答えを書いて ボタンをクリックすると「正解!」や「不正解!答えは○○」 と表示されるようなものです いろんなサイトを見たのですがよく理解できませんでした サンプルのソースなどを書いていただくとありがたいです 宜しくお願いします

  • クイズの解答によってボタンの画像を変える

    Flashは初心者ですが、現在クイズを作成しています。 ボタンを押すとクイズが画面の半分に出てきて回答を選ぶと正解か不正解が分かります。 全部で20問くらいあるのですがランダムに並んで知るので、クイズの途中でもどのボタンが回答済み(正否も)か分かるようにするためです。 あるクイズが終わったら例えば正解ならボタンの色が青に、不正解ならボタンの色が黄色に変わるようにする方法が分かりません。 正解と不正解で飛ばすフレームを変えようと思ったのですが、他のボタンの処理が分かりません。 宜しくおねがいします。

  • Flash lite1.0の計算クイズ

    初めまして。 初心者ですがモバイル版のFlash lite1.0で計算クイズを作成したいと思っています。 スタート画面でスタートを押すとクイズが始まり ランダムで問題が表示され、答えを数字ボタンで入力後 正解だと○不正解だと×と表示され また問題へ進んでいき、100問終了後 正解率とかかった時間をランキングに飛ばす と言う仕様で作成していきたいと思っているのですが 現在作成しているスクリプトではランダムはできているのですがクイズが9問までしかできません。 また、問題を表示できても答えを入力し、正解・不正解の表示をさせる方法がわかりません。 問題を100問作成する方法と答えを入力する方法を教えてください。(答えは二桁まで入力可能にしたいです) 説明がわかりづらいかもしれませんが 宜しくお願いします。

    • ベストアンサー
    • Flash
  • クイズ番組で答えわかりますか?

    この前、たまたまテレビをつけるとサルヂエというクイズ番組がやっていてさっそく自分も紙とペンを用意してやってみたのですが・・・・・、結局1問もわからずに終わってしまいました(涙) その番組のクイズは事前に何人にもやってもらって正解率というのが最初に出るのですが、 司会者「つぎの問題は正解率70%」 自分「よっし!これならきっとオレにもできるぜ!」 って思ってもやっぱ全然わからないんです。。。本当にクイズ番組で答えがでるより先に答えがわかっちゃう人ってすごいと思います。僕もまだ若いし(高校生)、学力も平均ぐらいはあると思うのですが・・・ みなさんはクイズが解けるのでしょうか? また、クイズってコツとかないのでしょうか?

  • JAVA言語,JSPによるクイズシステム(環境エクリプス5.5)(問題文はテキストで作成)

    環境エクリプス5.5。JAVA言語を使いJSPでクイズプログラムを作ることになりました。流れは、いくつかの選択ボタンがあり、押したら問題が1問出て、4択式の中からクリック式で選び、正解だったら正解ページに行き、間違いだったら不正解ページに行きますが解説は正解も不正解も一緒です。その正解、不正解ページにある「次の問題」というボタンを押したら次の問題をだします。問題は10問です。MVCアーキテクチャーの概念にそって、サーブレット、モデル、ビューで作っていきます。問題をテキストにつくりたいのですが、先ほどの説明画面のようにするには、テキストでどのように作っておけばよいのか?わかりません。テキストはモデルクラスで呼ぶのですが、そのクラスでどのような定義をしたら呼べるのか?どのようにしあたら、問題、回答4つ、解説をわけることができるか?。お願いします。どなたか教えていただけませんか?できなくてとても困っています。

    • ベストアンサー
    • Java
  • クイズ作成2:リンクした複数ページの中で、ファイル名に「○○」という文字列を含むファイルの数を検出

    昨日もこちらで質問させていただいたのですが、新たな課題が発生しましたので、再度質問させていただきました。何度も質問して申し訳ありませんが、もしよければアドバイスをいただけますようお願いいたします。 ○目的○ 10問のクイズを行い、最終画面に正解数を表すこと。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 現在、HTMLとJavaScriptを用いてクイズの作成を行っております。 具体的な流れを記述いたします。 10問のクイズ(1ページに1問)を順番に表示し、1問答えるごとに正否画面を表示する。 用いるファイルの名前は「クイズ1」「正解1」「残念1」というように、数字が「1から10」まで変動するだけです。 クイズ1  ↓ 正解1 (or 残念1)  ↓ クイズ2  ↓ 正解2 (or 残念2)  ↓ クイズ3  ↓  :  ↓ クイズ10  ↓ 正解10 (or 残念10)  ↓ 最終画面 上のような流れで、「最終画面」で正解数の合計を表示したいと思っているのですが、具体的にどのようなプログラムを組んだらいいのか悩んでおります。 現在の私の考えとしましては、最終画面に達するまでに、「正解」という文字列を含むファイルにリンクした「数」をカウントすればいいのではないか、と思っています。 よかったらアドバイスをいただけますようお願い申し上げます。

  • java サーブレットについて

    htmlファイルを使わずにjavaとxmlファイルのみでクイズのようなものをつくりたいです    javaファイルでのラジオボタンの使い方やページ間の情報の保持・引継ぎが分かりません   概要として下記のようなものです   Page1.java 1+1=? 答え ○ラジオボタン  2   を選択したと仮定 ○〃       3 ボタン(Page2.javaへのリンク) Page2.java 2+2=? 答え ○〃       4 ○〃  5  を選択したと仮定 ボタン(Page3.javaへのリンク) Page3.java 1.javaの答えは正解です   2.javaの答えは不正解です