!!! バトルモジュール役割説明 *カード選択モジュールが保持しているplayerとcpuが使用するカード番号を読み込む *バトル画像の初期化表示 **背景画像の表示 **HPゲージの表示(ゲージは満タン) **バトル開始ボタンの表示 **カード番号に応じたキャラクターの画像を表示 **じゃんけんの手を選択するじゃんけんボタンを表示(グー、チョキ、パーの3種類) ***グー = 0、チョキ = 1、パー = 2 として扱う *バトル開始ボタンをクリックするとバトル開始 **バトル開始を示すバトルスタートフラグを1(バトル開始状態)にする **5秒のカウント開始…(1) *5秒の間で任意のじゃんけんボタンをクリック可能 **じゃんけんボタンをクリックした場合にはハンドセレクトフラグを1(選択状態)にするクリックしたボタンは色が(赤に)変わる **一度選択した手は変更する事が出来ない *5秒カウントの終了 **この時点でハンドセレクトフラグが0(未選択状態)であればランダムにプレイヤーの手を選択する *じゃんけんの開始 **CPUの手をランダムに選択 **プレイヤーが選択した手が必殺技の手の場合はsp1_flagに1(プレイヤーの必殺技選択状態)を格納 **CPUが選択した手が必殺技の手の場合はsp2_flagに1(CPUの必殺技選択状態)を格納 *じゃんけんの勝敗の判定を行う **勝敗がついたとき…負けたカードのHPから勝ったカードの手に対応した攻撃力を引く **引き分け時…両方のカードのHPを1減らす *バトルの終了判定を行う **双方のカードのHPから終了判定を行う !バトル終了の場合 **バトルの結果に応じたバトル結果ウィンドウを表示する ***プレイヤーがバトルに勝った場合はファイトマネーを入手 ****続けてバトルを行うかタイトルに戻るかを選択 ***引き分け、敗北時にはタイトル画面へ戻る !バトル継続の場合 *じゃんけんフラグを1(じゃんけん終了状態)にして5秒カウントをリセットさせる *じゃんけんボタンの色を初期化(黒色に)する *バトル開始!…(1) *じゃんけんアイコン選択可能になったらタイマーを表示 *カウント開始 *5カウントの間でプレイヤーの手を選択可能(選択しない場合はランダムで決まる) *CPUの手をランダムで選択 *選択した手をじゃんけんを行う関数に渡す *じゃんけんを行う *HPの計算を行う *体力比を元にHPゲージを更新する *両方のHP比が0より大きい場合は(1)に分岐 *片方のHP比が0になったらバトル終了 プレイヤーが勝利した場合はお金が増える プレイヤーが敗北した場合はお金は変わらない *同時にHP比が0になったら引き分けでバトル終了 *バトルが終了したらバトル終了画像を表示 *モードセレクトモジュールに戻る !!!関数 !!初期化をする関数 void my_init(int argc, char *argv[]); --引数--  コマンドライン引数 --返り値-- なし --説明-- プログラムの最初に呼び出して初期化を行う !!メインウィンドウ作成をする関数 GtkWidget *main_window_new(void); --引数-- なし --返り値-- 作成したトップレベルウィンドウGtkWidget * --説明-- トップレベルウィンドウを作成する時に呼び出す !!メインウィンドウに背景画像をセットする関数 void set_background(GtkWidget *window); --引数-- 背景をセットするGtkWidget * --返り値-- なし --説明-- メインウィンドウに背景をセットする GtkWidget *main_window_new(void)内にて呼び出される !!メインウィンドウにイメージを描画する関数 void repaint_image(GtkWidget *widget, GdkEventExpose *event, gpointer use_data); --引数--  イメージを格納するGtkWidget * 発生イベントを示すGdkEventExpose * 参照する画像名を示すgpointer * --返り値-- なし --説明-- イメージ画像を描画する際に用いる !!イメージをパックしたウィジェットを返す関数 GtkWidget *image_pack( GtkWidget *parent , gchar *filename); --引数-- イメージを貼り付けるGtkWidget * 貼り付けたいファイル名を示すgchar * --返り値-- イメージを貼りつけたウィンドウを示すGtkWidget * --説明-- じゃんけんアイコ!!イメージをパックしたウィジェットを返す関数 GtkWidget *image_pack( GtkWidget *parent , gchar *filename); --引数-- イメージを貼り付けるGtkWidget * 貼り付けたいファイル名を示すgchar * --返り値-- イメージを貼りつけたウィンドウを示すGtkWidget * --説明-- じゃんけんアイコンを作成する時に用いる !!ボタンにイメージ画像をパックする関数 void image_button_new(GtkWidget *button, GtkWidget *image); --引数-- イメージを貼り付けるボタンGtkWidget * 貼り付けるウィジェットを示すGtkWidget * --返り値-- なし --説明-- じゃんけんアイコンを作成する時に用いる !!グーが押された時のコールバック関数 void cb_button_clicked1 (void); --引数-- なし --返り値-- なし --説明-- グーアイコンがクリックされた時に呼び出される この関数内でじゃんけんの手を示す大域変数に1を代入する !!チョキが押された時のコールバック関数 void cb_button_clicked2 (void); --引数-- なし --返り値-- なし --説明-- チョキアイコンがクリックされた時に呼び出される この関数内でじゃんけんの手を示す大域変数に2を代入する !!パーが押された時のコールバック関数 void cb_button_clicked3 (void); --引数-- なし --返り値-- なし --説明-- パーアイコンがクリックされた時に呼び出される この関数内でじゃんけんの手を示す大域変数に3を代入するンを作成する時に用いる !!ボタンにイメージ画像をパックする関数 void image_button_new(GtkWidget *button, GtkWidget *image); --引数-- イメージを貼り付けるボタンGtkWidget * 貼り付けるウィジェットを示すGtkWidget * --返り値-- なし --説明-- じゃんけんアイコンを作成する時に用いる !!グーが押された時のコールバック関数 void cb_button_clicked1 (void); --引数-- なし --返り値-- なし --説明-- グーアイコンがクリックされた時に呼び出される この関数内でじゃんけんの手を示す大域変数に1を代入する !!チョキが押された時のコールバック関数 void cb_button_clicked2 (void); --引数-- なし --返り値-- なし --説明-- チョキアイコンがクリックされた時に呼び出される この関数内でじゃんけんの手を示す大域変数に2を代入する !!パーが押された時のコールバック関数 void cb_button_clicked3 (void); --引数-- なし --返り値-- なし --説明-- パーアイコンがクリックされた時に呼び出される この関数内でじゃんけんの手を示す大域変数に3を代入する !!カウントダウンのイメージを表示する関数 gboolean count_down (gpointer user_data); --引数-- カウントを表示するウィジェットへのgpointer * --返り値-- TRUE(返り値がTRUEのあいだ表示を続ける) --説明-- じゃんけんアイコンがクリック可能である時間をカウントする もし、時間内でクリックが行われなかった場合は大域変数にランダムに 代入を行う !!!マクロ !!#define MAX_WIDGET 9 --説明-- ウィンドウ内に表示するウィジェットの最大数は「9」であるため定義 !!#define MAX_HBOX 3 --説明-- 水平パッキングボックスに配置するウィジェットの数は「3」であるため定義