gpt4 book ai didi

c - 没有系统刷新控制台值 ("cls");

转载 作者:行者123 更新时间:2023-11-30 17:16:24 25 4
gpt4 key购买 nike

我正在尝试用 C 语言编写 Snake,但目前我刚刚编写了一个可变长度和宽度的矩阵。由于我希望游戏(即 map )不断刷新,所以我尝试这样编写代码,但“刷新效果”不太好看到。我能做什么?

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#include <time.h>

int main()
{
int larghezza = 0, altezza = 0, i = 0, j = 0, **griglia;

printf("Inserire la larghezza della mappa(max 79):");
while(scanf("%d", &larghezza) == 1) /* Inserimento larghezza */
{
if(larghezza >= 15 && larghezza <= 79)
{
break;
}
else
{
printf("Numero di larghezza non valido.\n");
continue;
}
}

printf("Inserire l'altezza della matrice:");
while(scanf("%d", &altezza) == 1) /* Inserimento altezza */
{
if(altezza >= 15 && altezza <= 79)
{
break;
}
else
{
printf("Numero di altezza non valido.\n");
continue;
}
}

griglia = malloc(altezza * sizeof(int*)); /* griglia si estende solo in larghezza */
for(i = 0; i < altezza; i++)
{
griglia[i] = malloc(larghezza * sizeof(int)); /* poi ogni elemento "i" di griglia */
} /*avrà una lunghezza pari ad "altezza" */

for(i = 0; i < altezza; i++) /* Inizializza la matrice griglia */
{
for(j = 0; j < larghezza; j++)
{
griglia[i][j]= 254;
}
}

while(1) /* refresh infinito mappa */
{
for(i = 0; i < altezza; i++)
{
for(j = 0; j < larghezza; j++)
{
printf("%c", griglia[i][j]);
} /* end for colonne */
printf("\n");
} /*end for righe */
Sleep(100);
system("cls");
}/* end while di refresh */

最佳答案

你可以只清除蛇最后所在的位置。

我会清除蛇末端的最后一个字符。这样刷新问题就会消失,您只需控制蛇的大小和位置(无论如何您都需要这样做)。

干杯,

莱斯利

关于c - 没有系统刷新控制台值 ("cls");,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29660665/

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