2016 ソフトウェア設計及び演習用の班Wiki

gr01::中間クイズモジュール内部説明書

ヘッダファイル・ソースファイルから参照するもの

・proto.h
ganchan.character
キャラクター構造体
int turn
int knowledge 
ターン数 
学力 
void tyukan(GtkWidget *)  GtkWidget *quiz0(GtkWidget *) 
GtkWidget *quiz1(GtkWidget *) 
GtkWidget *Ans1(GtkWidget *) 
GtkWidget *quiz2(GtkWidget *) 
GtkWidget *Ans2(GtkWidget *) 
GtkWidget *quiz3(GtkWidget *) 
GtkWidget *Ans3(GtkWidget *) 
GtkWidget *quiz4(GtkWidget *) 
GtkWidget *Ans4(GtkWidget *) 
GtkWidget *quiz5(GtkWidget *) 
GtkWidget *Ans5(GtkWidget *) 
はじめの画面 
第1問 
正誤判定1 
第2問 
正誤判定2 
第3問 
正誤判定3 
第4問 
正誤判定4 
第5問 
正誤判定5 
void tyukan(GtkWidget *)  void cb_mouse_perfect_press  中間クイズモジュールのマウスクリック 
static gboolean
cb_mouse_press 
module = 4  4のマウス遷移を使う 


・ ~/material/quiz/kimatsu
tyukan.png  最初の画面の画像 
mondai1.png  問題No.1 
mondai2.png  問題No.2 
mondai3.png  問題No.3 
mondai4.png  問題No.4 
mondai5.png  問題No.5 
mondai6.png  問題No.6 
mondai7.png  問題No.7 
mondai8.png  問題No.8 
mondai9.png  問題No.9 
mondai10.png  問題No.10
mondai11.png  問題No.11 
mondai12.png  問題No.12  
mondai13.png  問題No.13 
mondai14.png  問題No.14 
mondai15.png  問題No.15 


難易度
mondai1.png  難しい 
mondai4.png  難しい 
mondai5.png  難しい 
mondai6.png  難しい
mondai12.png  難しい  
mondai13.png  難しい 
mondai2.png  簡単 
mondai3.png  簡単  
mondai7.png  簡単 
mondai8.png  簡単 
mondai9.png  簡単 
mondai10.png  簡単
mondai11.png  簡単 
mondai14.png  簡単 
mondai15.png  簡単 

・ ~/material/quiz
qa1.png  正解の時の画像 
qa2.png  不正解の時の画像 



・music.h
効果音(BGM)やクリック音を再生するためのファイル。start_musicには .mp3形式のBGMが入っており、start_seには .wav形式のクリック音が入っている。


・ ~/material/quiz/bgm
quiz.mp3  中間クイズの時のBGM 

・ ~/material/se
bottun.wav  クリック音 

説明

  • 動作は全てクリックで行う
  • 出題は全5問
  • 6月下旬(ターン13)で中間クイズが始まるので、play.c に ganchan.turn == 13 のときに中間クイズモジュールに遷移できるように設定してある
  • クリックの範囲が初めの画面、出題画面、正解画面、不正解画面で異なるので 変数 n を1〜4で設定しそれぞれの画面に対応している
    • n = 1 ・・・はじめの画面「START」のところのマウスクリック
    • n = 2 ・・・選択肢「1」「2」「3」のところのマウスクリック
    • n = 3 ・・・ 正解画面のところの「次へ」に該当するマウスクリック
    • n = 4 ・・・ 不正解画面のところの「次へ」に該当するマウスクリック
  • quiz0 はクイズの初めの画面なのでクリックの範囲は n = 1
  • 難易度は、学力(ganchan.knowledge)の値で決め、学力が30以上のときは簡単な問題で、30未満のときは難しい問題となる
    • int m, g のうち m に学力の値、g で難易度の分岐をしている
    • 難易度の分岐は quiz1 quiz2 quiz3 quiz4 quiz5 の全てで行っている
    • 15問中、難しい6問・簡単9問
  • クイズはランダムで出題されているが、GetRandom() で乱数にされたもののうち、一番上にあるものを表示している。このとき、quiz1 quiz2 quiz3 quiz4 quiz5 でそれぞれ GetRandom() を行い、Do〜While を使って問題が被らないようにしている
    • quiz1 quiz2 quiz3 quiz4 quiz5 のクリックの範囲は n = 2
    • マウスのクリックの範囲は選択肢の3種類。それぞれ1,2,3の値を持つ
    • GetRandom() event.c で定義している
  • 正誤判定は、クリックの範囲の1,2,3で、その値が正解かどうか判定する
    • Ans1 Ans2 Ans3 Ans4 Ans5 のクリックの範囲は、正解の時 n = 3、不正解の時 n = 4
    • 正解のときは変数 sinka に1を加え、不正解のときは0を加える
  • 終わりに
    • キャラクターの進化に関する変数 ganchan.seikai sinka の値を入れる
    • ターン14に移るために ganchan.turn をプラス1する


最終更新日:2016/08/06 05:00:32