gpt4 book ai didi

c - 当我将 bool new_block 设置为 FALSE 时,代码不执行任何操作 (C)

转载 作者:行者123 更新时间:2023-11-30 20:35:59 26 4
gpt4 key购买 nike

我正在用 C 语言构建一个俄罗斯方 block 游戏,并且我有一个 bool 值来控制是否应该部署新 block 。我使用以下 typedef 来创建 bool 变量。当我运行程序(int main())时,初始化后,我的程序进入无限 while 循环,这几乎就是游戏。由于某种原因,我有一行 new_block = FALSE; ,如果没有注释掉,它会阻止我的程序执行任何操作。这包括我在其之前和之后放置的测试 printf 语句。我不明白这个简单的陈述有什么问题?谢谢:)

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");
}
}

我已经检查过,当 new_block = FALSE; 被注释掉时,打印语句工作正常,因此错误不在我的 block 结构中,尽管我在下面添加了该错误以供引用。

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;

最佳答案

从表面上看,当你说:

new_block = FALSE;

if 语句:

 if (new_block) 

将会一次又一次地失败,你的程序基本上将永远挂起。您可能希望在 if 语句中包含另一个条件,或者有一个 else 语句或其他语句来捕获创建新 block 时为 false 的情况。

关于c - 当我将 bool new_block 设置为 FALSE 时,代码不执行任何操作 (C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36958128/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com