!!! ヘッダファイル・ソースファイルから参照するもの
'''' ・proto.h ''''
||ganchan.character
キャラクター構造体 | int turn
int backknowledge | ターン数
裏学力
|| void tyukan(GtkWidget *) | GtkWidget *kimatsu0(GtkWidget *)
GtkWidget *kimatsu1(GtkWidget *)
GtkWidget *kimatsuA1(GtkWidget *)
GtkWidget *kimatsu2(GtkWidget *)
GtkWidget *kimatsuA2(GtkWidget *)
GtkWidget *kimatsu3(GtkWidget *)
GtkWidget *kimatsuA3(GtkWidget *)
GtkWidget *kimatsu4(GtkWidget *)
GtkWidget *kimatsuA4(GtkWidget *)
GtkWidget *kimatsu5(GtkWidget *)
GtkWidget *kimatsuA5(GtkWidget *) | はじめの画面
第1問
正誤判定1
第2問
正誤判定2
第3問
正誤判定3
第4問
正誤判定4
第5問
正誤判定5
|| void kimatsu(GtkWidget *) |void cb_mouse_perfect1_press | 期末クイズモジュールのマウスクリック
|| static gboolean
cb_mouse_press | module = 7 | 7番のマウス遷移を使う |
'''' ・ ~/material/quiz/kimatsu ''''
||tyukan.png | 最初の画面の画像
||ki1.png | 問題No.1
||ki2.png | 問題No.2
||ki3.png | 問題No.3
||ki4.png | 問題No.4
||ki5.png | 問題No.5
||ki6.png | 問題No.6
||ki7.png | 問題No.7
||ki8.png | 問題No.8
||ki9.png | 問題No.9
'''' 難易度 ''''
||tyukan.png | 最初の画面の画像
||ki1.png | 普通
||ki2.png | 普通
||ki3.png | 簡単
||ki4.png | 簡単
||ki5.png | 難しい
||ki6.png | 難しい
||ki7.png | 難しい
||ki8.png | 簡単
||ki9.png | 簡単
'''' ・ ~/material/quiz ''''
||qa1.png | 正解の時の画像
||qa2.png | 不正解の時の画像
''''・music.h''''
効果音(BGM)やクリック音を再生するためのファイル。start_musicには .mp3形式のBGMが入っており、start_seには .wav形式のクリック音が入っている。
'''' ・ ~/material/quiz/bgm ''''
||kimatsu.mp3 | 期末クイズの時のBGM
'''' ・ ~/material/se ''''
||bottun.wav | クリック音
!!! 説明
*動作は全てクリックで行う
*出題は全5問
*8月(ターン20)で中間クイズが始まるので、play.c に ganchan.turn == 20 のときに期末クイズモジュールに遷移できるように設定してある
*クリックの範囲が初めの画面、出題画面、正解画面、不正解画面で異なるので 変数 n を1〜3で設定しそれぞれの画面に対応している
*``kimatsu0 ``はクイズの初めの画面なのでクリックの範囲は n = 1
*難易度は、裏学力(ganchan.backknowledge)の値で決め、学力が30以上のときは簡単な問題で、30未満のときは難しい問題となる
**裏学力は稀にドロップするレアアイテム(( color red 過去問))をドロップすることでアップする
**``int p, f ``のうち p に裏学力の値、 f で難易度の分岐をしている
**難易度の分岐は ``quikimatsu1 kimatsu2 kimatsu3 kimatsu4 kimatsu5 ``の全てで行っている
**全部で9問あるが、全体的に難易度が高めなので、その中で難しい・普通・簡単に分け、普通の問題は、簡単・難しいどちらにも所属している
*クイズはランダムで出題されているが、``GetRandom() ``で乱数にされたもののうち、一番上にあるものを表示している。このとき、``kimatsu1 kimatsu2 kimatsu3 kimatsu4 kimatsu5 ``でそれぞれ ``GetRandom() ``を行い、Do〜While を使って問題が被らないようにしている
**``kimatsu1 kimatsu2 kimatsu3 kimatsu4 kimatsu5 ``のクリックの範囲は n = 2
**マウスのクリックの範囲は選択肢の3種類。それぞれ1,2,3の値を持つ
**``GetRandom() ``は``event.c ``で定義している
*正誤判定は、クリックの範囲の1,2,3で、その値が正解かどうか判定する
**``kimatsuA1 kimatsuA2 kimatsuA3 kimatsuA4 kimatsuA5 ``のクリックの範囲は、正解の時 n = 3、不正解の時 n = 4
**正解のときは変数 ``sinka`` に1を加え、不正解のときは0を加える
*終わりに
**キャラクターの進化に関する変数`` ganchan.seikai ``に ``sinka ``の値を入れる
**ターン21に移るために`` ganchan.turn ``をプラス1する