#include #include #define ESC "\x1b" #define RIGHE 9 #define COLONNE 9 using namespace std; void riempiMatrice(int matrice[][COLONNE], int righe, int colonne); void stampaMatrice(int matrice[][COLONNE], int righe, int colonne); void clockWise(int matrice[][COLONNE], int righe); int main(void) { int matrice[RIGHE][COLONNE]; int righe = RIGHE; int colonne = COLONNE; riempiMatrice(matrice, righe, colonne); stampaMatrice(matrice, righe, colonne); for (int r = 0; r < 12; r++) { clockWise(matrice, righe); cout << ESC << "[H"; stampaMatrice(matrice, righe, colonne); sleep(1); } return 0; } void riempiMatrice(int matrice[][COLONNE], int righe, int colonne) { for (int r = 0; r < righe; r++) { for (int c = 0; c < colonne; c++) { if (r <= righe / 2 && c == colonne / 2) { matrice[r][c] = 1; } else { matrice[r][c] = 0; } } } } void stampaMatrice(int matrice[][COLONNE], int righe, int colonne) { for (int r = 0; r < righe; r++) { cout << endl; for (int c = 0; c < colonne; c++) { cout << matrice[r][c] << " "; } } } void clockWise(int matrice[][COLONNE], int righe) { for (int c = 0; c < righe/2; c++) { int temp = matrice[c][righe / 2]; matrice[c][righe / 2] = matrice[c][c]; matrice[c][c] = matrice[righe / 2][c]; matrice[righe / 2][c] = matrice[righe - 1 - c][c]; matrice[righe - 1 - c][c] = matrice[righe - 1 - c][righe / 2]; matrice[righe - 1 - c][righe / 2] = matrice[righe - 1 - c][righe - 1 - c]; matrice[righe - 1 - c][righe - 1 - c] = matrice[righe / 2][righe - 1 - c]; matrice[righe/2][righe - 1 - c] = matrice[c][righe - 1 - c]; matrice[c][righe - 1 - c] = matrice[c][righe / 2]; matrice[c][righe - 1 - c] = temp; } }