////////////////////////////////////////////////////////////////////////////// //Groboプログラム // //satt.c // //環境 grace FreeBSD 8.3 R //rkito 2012/07/05 // // //gcc satt.c -lX11 -I/usr/local/include -L/usr/local/lib -o satt ///////////////////////////////////////////////////////////////////////////// #ifndef INCLUDED_SATT_H #include "satt_h.h" #endif Display* d; /* ディスプレイ変数 */ Window w; /* 表示するウィンドウ */ Window button1,button2,button3; /* ボタンウィンドウ*/ Window target1,target2,target3,target4; /* ターゲットウィンドウ*/ int screen; /* スクリーン */ unsigned long black,white; /* 黒と白のピクセル値 */ GC gc; /* グラフィックスコンテキスト */ XEvent event; /* イベント構造体 */ XFontSet fs1; /* フォントセット 残り時間表示用*/ XFontSet fs2; /* フォントセット ボタン表示用*/ int missing_count; /* 存在しない文字集合の数 */ char** missing_list; /* 存在しない文字集合 */ char* def_string; /* ↑に対して描画される文字列 */ time_t time1, time2; int d_time1=0,d_time2=0; char string[256]; /* 描画する全角文字列 */ char level[256]; /*設定レベル文字列*/ int flg=1; /*ループ用フラグ*/ int t_count=0; /*的の出てきた回数*/ int score=0; /*スコア*/ u_int8_t out_val; /*ステッピングモータ制御用8bit*/ u_int8_t in_val; /*赤外線受信8bit*/ u_int8_t val_0=0x00; /**/ u_int8_t temp_val; /*赤外線受信8bit*/ int target[4]; /*敵が隠れてないとき1,隠れてるとき2*/ time_t t_time[5]; /*敵が出てきたときの時間*/ int up_time; /*敵が出ている時間(レベルによって変動)*/ int interval_time; /*次に敵が隠れる時間*/ int fd; /*ppi用*/ int i; /*forループ用*/ time_t i_time1,i_time2; /*インターバル用*/ int number; /*乱数用*/ int main(void) { set_up_win(); set_up_font(); fd = open("/dev/ppi0",O_RDWR, 0600); while(flg) { //レベル設定画面 set_up_level(); //ゲームをスタートする画面 game_start(); ioctl(fd,PPIGSTATUS,&temp_val); for(i=0;i<4;i++) { target[i]=2; } out_val=0x0F; output(out_val); set_up_time(); time(&i_time1); srand((unsigned)time(NULL)); //ゲームループ while(flg) { target_test(); //残り時間表示 time_limit(); //乱数を用いて上がる的を決定 get_number(); //赤外線受光機確認 input(); target_test(); //一定時間経過すると敵を隠す down_target(); } //敵がすべて隠れてない状態にする finish_target(); target_test(); flg=1; //得点画面表示 score_show(); } //window終了 exit_x(); close(fd); }