2015 ソフトウェア設計及び演習用の班Wiki
15::gr11::main.c
#include <gtk/gtk.h> #include <glib.h> #include <stdlib.h> #include <time.h> #include "widget.h" #include "question.h" #include "music.h" /* メイン関数 */ int main (int argc, char **argv){ QUESTION ques; GtkWidget *window; gtk_init (&argc, &argv); // 初期化 make_question(); // 問題作成 window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_widget_set_size_request (window, 640, 480); gtk_window_set_title(GTK_WINDOW(window), "がんちゃん 単位をください"); TOP: while(1){ // スタート画面 vbox_destroy(); // vboxが消える gtk_widget_show_all (start(window)); // ウィンドウの表示 start_music("start.mp3"); // music start gtk_main (); // メインループ quit_music(); // music stop if(return_pra() == 1){ // 練習問題 srand((unsigned) time(NULL)); // ランダムに int i = rand() % 70; // 乱数を取る ques = load_question(i); // 引き数:問題番号0~69 vbox_destroy(); gtk_widget_show_all (mondai4(window, ques)); start_music("mondai.mp3"); gtk_main (); quit_music(); vbox_destroy(); if(saiten(ques.answer4) == 1){ // 正解 gtk_widget_show_all (seikai_pra(window)); start_music("seikai.mp3"); }else{ gtk_widget_show_all (huseikai(window)); start_music("huseikai.mp3"); } gtk_main (); quit_music(); goto TOP; } int x = 0; // ターン数 while(x < 3){ // プレイ画面 vbox_destroy(); gtk_widget_show_all (play(window)); start_music("play.mp3"); gtk_main (); quit_music(); int course = position % 2; // 奇数:一般、偶数:専門 srand((unsigned) time(NULL)); // ランダムに int j; // 乱数を取る if(course == 1){ // 一般 j = rand() % 27; ques = load_question1(j); }else{ // 専門 j = rand() % 43; ques = load_question0(j); } reset_get_score(); get_have_item(item); // 引き数:playerのitem[] // 教科画面 vbox_destroy(); gtk_widget_show_all (kamoku(window, ques.kamoku, item)); start_music("kamoku.mp3"); gtk_main (); quit_music(); // 問題画面 vbox_destroy(); if(return_item_number() == 2) // 2択item使用時 { gtk_widget_show_all (mondai2(window, ques)); start_music("mondai.mp3"); }else{ gtk_widget_show_all (mondai4(window, ques)); start_music("mondai.mp3"); } gtk_main (); quit_music(); // 採点 vbox_destroy(); if(return_item_number() == 2) // 2択時 { if(saiten(ques.answer2) == 1){ // 正解画面 gtk_widget_show_all (seikai(window)); start_music("seikai.mp3"); }else{ // 不正解画面 gtk_widget_show_all (huseikai(window)); start_music("huseikai.mp3"); } }else{ // 4択時 if(saiten(ques.answer4) == 1){ // 正解画面 gtk_widget_show_all (seikai(window)); start_music("seikai.mp3"); }else{ // 不正解画面 gtk_widget_show_all (huseikai(window)); start_music("huseikai.mp3"); } } gtk_main (); quit_music(); // ターン数増加 x++; } // 成績発表画面 vbox_destroy(); gtk_widget_show_all (kekka(window)); start_music("kekka.mp3"); gtk_main (); quit_music(); // 成績画面 vbox_destroy(); gtk_widget_show_all (risult(window)); start_music("risult.mp3"); gtk_main (); quit_music(); } return 0; }
最終更新日:2015/07/17 10:24:49