私はCでテトリスゲームを構築しています。新しいブロックを展開するかどうかを制御するboolean
があります。私は次のtypedefを使って変数bool
を作成しました。私がプログラム(int main()
)を実行すると、初期化の後、私のプログラムは無限ループに入ります。これはかなりゲームです。なんらかの理由で、私はコメントされていないときに何かから私のプログラムを停止する行new_block = FALSE;
を持っています。これは私がそれの前と後に置いた文printf
の文を含んでいます。私はこの単純な声明で何が間違っているのか理解できません。おかげで:)bool new_blockをFALSEに設定すると、コードは何もしません(C)
typedef enum
{
FALSE,
TRUE
} bool;
while(1) {
if (new_block) {
printf("test1");
i = 1;
//i = rand() % 7;
block = all_blocks[(i-1)*4];
block.x = 5;
block.y = 0;
new_block = FALSE;
printf("test2");
//update_stack(tetris_stack, block, i);
printf("test");
}
}
私がチェックしているとprint文はnew_block = FALSE;
私は参考のためにその下に追加されているもののので、エラーが私のブロック構造ではありませんコメントアウトされたときに正常に動作します。それを見てから、
typedef struct {
int x;
int y;
int block_no;
int rotation;
int other_x[3];
int other_y[3];
int up_check_no;
int up_x[3];
int up_y[3];
int left_rotate;
int right_rotate;
int down_rotate;
int max_left;
int left_check_no;
int left_x[4];
int left_y[4];
int max_right;
int right_check_no;
int right_x[4];
int right_y[4];
int max_down;
int down_check_no;
int down_x[4];
int down_y[4];
}block;
[MCVE](/ help/mcve)を作成してください。コードをコンパイルする必要があります。 – Sumurai8
homebrewのブール型を定義するのではなく、 'bool'という名前で定義します。 Cには組み込みのブール型と名前のための標準ヘッダーと定数用のマクロがあります。 – Olaf