gpt4 book ai didi

C - 执行外部循环的函数 - 三消游戏

转载 作者:行者123 更新时间:2023-11-30 15:30:37 28 4
gpt4 key购买 nike

我正在尝试用 C 语言制作一款三消游戏。这是我迄今为止编写的游戏的完整代码 - http://pastebin.com/sg5JZLz1

但由于某种原因,这里的代码(在 doIt() 函数中):

int x = 0;
while(x<SIZE) {
// Remove vertical matches
removeVerticals();
// Remove horizontal matches
removeHorizontals();
// Move down
moveDown(1);
printf("Ran : %d",x);
x++;
}

这些函数仅执行一次,并且循环内仅考虑 printf 部分。请原谅我的任何不良编码习惯,因为我对 C 很陌生。

这是我得到的输出 - enter image description here

相反,输出应该只是游戏板和下面的 Ran: 9。这意味着函数没有执行。

最佳答案

否,您的功能运行正常!它正在执行 SIZE 次。

但问题是您正在使用system(cls);。所以每次执行的时候都会清屏!因此,您无法在屏幕上看到以前的打印结果。所以你只能在屏幕上看到最后打印的内容。

尝试这个改变-

moveDown(int printx) {
int moved = 0,r;
for (m=0; m<SIZE; m++) {
moved = 0;
for (i=0; i<SIZE-1; i++) {
for (j=0;j<SIZE;j++) {
if (matrix[i+1][j] == ' ') {
matrix[i+1][j] = matrix[i][j];
matrix[i][j] = ' ';
moved = 1;
}
}
}
i=0;
for (j=0;j<SIZE;j++) {
r = rand_lim(5); // 0 to 5
if (matrix[i][j] == ' ') {
matrix[i][j] = arr[r];
}
}
if(printx==1 && moved==1) {
//system("cls"); // remove or comment out this line <-- Note
printScreen();
// Remove vertical matches
removeVerticals();
// Remove horizontal matches
removeHorizontals();
waitForIt();
moved = 0;
}
}
}

关于C - 执行外部循环的函数 - 三消游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25520888/

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