int main() {
struct matrix m;
m.rows = 20;
m.columns = 20;
m.grid = create_grid(m.rows,m.columns,'&');
/* Example animation */
printf("\033[H\033[2J");
for (int i = 0; i < m.columns; i++) {
update_matrix(m.grid,10,i,'x');
if (i > 0) {
update_matrix(m.grid,10,i-1,'&');
}
printf("\033[H\033[2J");
sleep(1);
printMatrix(m.grid,m.rows,m.columns);
}
for (int i = 0; i < m.rows; i++) {
free(m.grid[i]);
}
free(m.grid);
return 0;
}
void update_matrix(char** grid, int row,int column,char symbol) {
grid[row][column] = symbol;
}
char** create_grid(int rows, int columns, char symbol) {
int i,j;
char **grid = malloc(rows * sizeof(char *));
for (i = 0; i < rows; i++) {
grid[i] = malloc(columns * sizeof(char));
}
for (i = 0; i < rows; i++) {
for(j = 0; j < columns; j++) {
grid[i][j] = symbol;
}
}
return grid;
}
void printMatrix(char** array, int rows, int columns) {
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
printf("%c",array[i][j]);
}
printf("\n");
}
}
ma méthode d'animation est essentiellement ...mise à jour ascii grid imprimé à l'écran sans grille réimprimer
- imprimer la matrice
- mise à jour de la matrice
- pause
- clairement la écran
- réimprimer la matrice
Le problème avec cette méthode d'animation est qu'elle crée un effet de scintillement et je suis sûr que c'est très inefficace. Que puis-je faire pour ne pas avoir à effacer l'écran et réimprimer la matrice entière à chaque fois.
Je cours linux.
mon code matriciel est obsolète. Je peux simplement utiliser 'printf (" \ 033% d;% df ", ligne, colonne);' sans la matrice –
@cosine Si vous avez juste besoin de ce qui est imprimé sur l'écran, je suppose que vous n'aurez pas besoin de la matrice. –