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