Ejemplo n.º 1
0
void main (){	
	init();//初期化
	yokosen();//横線を引く

	//ゲームループ
	while(1){
		hyouji();//表示		
		key_chk();//キーチェック			
		rakka();//移動		
		counter();//カウンタ		
	}	
}
Ejemplo n.º 2
0
void sort(Position *a, int left, int right){

	static int tmp[3];
	/* クイックソート(2次元座標)
	まずY座標を小さい順に上から並び替え、Y座標が同じ時はx座標が小さい方を上にする。

	* a.x     : ソートする配列(x)
	* a.y   : ソートする配列(y)
	* left  : ソートするデータの開始位置
	* right : ソートするデータの終了位置
	*/

	if (left < right) {

		int i = left, j = right;
		int pivot = med3((a + i)->s, ( a+  (i + (j - i) / 2)   )->s, (a + j)->s); /* (i+j)/2ではオーバーフローしてしまう */


		while (1) { /* (a+i)->s を pivot 以上と以下の集まりに分割する */

			while ((a+i)->s < pivot) { i++; } /* (a+i)->s[i] >= pivot となる位置を検索 */
			while (pivot < (a+j)->s) { j--; } /* (a+i)->s[j] <= pivot となる位置を検索 */
			
			if (i >= j)  { break; }
			
			hyouji(a, i, j);//表示関数
			tmp[0] = (a+i)->s; (a+i)->s = (a+j)->s; (a+j)->s = tmp[0]; /* (a+i)->s[i],(a+i)->s[j] を交換 */
			tmp[1] = (a+i)->y; (a+i)->y = (a+j)->y; (a+j)->y = tmp[1]; /* a[i],a[j] を交換 */
			tmp[2] = (a+i)->x; (a+i)->x = (a+j)->x; (a+j)->x = tmp[2]; /* a[i],a[j] を交換 */

			hyouji(a, i, j);//表示関数
			
			i++; j--;
		}
		sort(a, left, i - 1); /* 分割した左を再帰的にソート */
		sort(a, j + 1, right); /* 分割した右を再帰的にソート */
		
	}
	
}
Ejemplo n.º 3
0
void show(Neuron *n) {
    Neuron *ptr;
    ptr = n->child;
    if (ptr != NULL) {
        while (ptr != n) {
            while (ptr->child != NULL) {
                ptr = ptr->child;      //子供がいる間、子供のアドレスへ移動
            }
            hyouji(ptr);
            while (ptr->brother == NULL) {
                ptr = ptr->parent;
                hyouji(ptr);
                if (ptr == n) {
                    break;
                }
            }
            if (ptr != n) {
                ptr = ptr->brother;
            }
        }
    }
}
Ejemplo n.º 4
0
void rakka(){
	if (sq.sd <= 0){		
		if (sq.y < 22){
			sq.sd = sq.sd_S;//初期値
			locate(sq.x, sq.y);//四角を画面上方に表示
			printf(" ");//空白を挿入
			sq.y++;//四角を下に落とす
			hyouji();//再び■表示
		}
		else{
			sq.x = sq.x_S;
			sq.y = sq.y_S;
		}
	}
}
Ejemplo n.º 5
0
int main(int argc, const char *argv[]) {
    
    //ファイル読み出し
    FILE *fp;
    int MAX_LENGTH=256;
    char *fname = "/Volumes/FLASH DRIVE/students.csv";
    char buf[MAX_LENGTH];
    int i=0;
    student stu[256];
    int num;
    int nizu;
    if( (fp = fopen( fname, "r+" )) == NULL ) {exit(EXIT_FAILURE);}
    while(fgets(buf,MAX_LENGTH,fp)!= NULL){
        sscanf(buf,"%[^\n,],%[^\n,],%d,%d,%d",stu[i].ID, stu[i].name, &stu[i].eigo, &stu[i].sugaku, &stu[i].sohuto );
        i++;
        nizu++;
    }
    nizu--;
    fclose(fp);
   

    
    printf("データベース\n");
    while(1){
    printf("何を実行しますか?\n");
    printf("1.データ一覧の表示\n");
    printf("2.データ追加\n");
    printf("3.データ削除\n");
    printf("4.データの検索\n");
    printf("5.データのソート\n");
    
    printf("番号を入力してください。\n");
    
    scanf("%d",&num);
    while(num<1 || num>5){
        printf("1~5の数字を入力してください。\n");
        scanf("%d",&num);
    }
    switch(num){
        case 1:
            hyouji(nizu,stu);
        break;
        
        case 2:
            tuika();
        break;
            
        case 3:
        printf("データの削除\n");
            sakujyo(nizu,stu);
        break;
            
        case 4:
        printf("データの探索\n");
            search(people,stu);
        break;
            
        case 5:
        printf("データのソート\n");
            sort();
        break;
            
        default:
        printf("何順に整列しますか?\\n");
        break;
            }
    }
    return 0;
}