#include <stdio.h>
#include <time.h>

int zero[5][5]  = {1,1,1,1,1,1,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,1,1,1,1};
int one[5][5]   = {0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1};
int two[5][5]   = {1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1};
int three[5][5] = {1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1};
int four[5][5]  = {1,0,0,0,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,1};
int five[5][5]  = {1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1};
int six[5][5]   = {1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1};
int seven[5][5] = {1,1,1,1,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1};
int eight[5][5] = {1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1};
int nine[5][5]  = {1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1};

int myClock[5][39];

void cp(int dest[5][5], int source[5][5])
{
     int i,j;
     for (i=0;i<5;i++)
       for (j=0;j<5;j++)
          dest[j][i] =  source[j][i];
}

void cpDigit(int offset, int number) {
     int matrix [5][5];
     switch (number) {
            case 0: cp(matrix,zero); break;
            case 1: cp(matrix,one); break;
            case 2: cp(matrix,two); break;
            case 3: cp(matrix,three); break;
            case 4: cp(matrix,four); break;
            case 5: cp(matrix,five); break;
            case 6: cp(matrix,six); break;
            case 7: cp(matrix,seven); break;
            case 8: cp(matrix,eight); break;
            case 9: cp(matrix,nine); break;
     }
     int i,j;

     for (i=0;i<5;i++)
          for (j=0;j<5;j++)
              myClock[i][offset+j] = matrix[i][j];
}

void clearClock() {
     int i,j;
     for (i=0;i<5;i++)
          for (j=0;j<35;j++)
              myClock[i][j] = 0;
     myClock[1][12] = 1;
     myClock[3][12] = 1;
     myClock[1][26] = 1;
     myClock[3][26] = 1;
}

void printClock() {
     int i,j;
     for (i=0;i<5;i++) {
          for (j=0;j<39;j++) {
              if (myClock[i][j]) printf("#");
              else printf(" ");
          }
          printf("\n");
     }
}

main() {
    while (1) {
        time_t epoch_time = time(NULL); // renvoie le nb de secondes depuis 00h00, Jan 1, 1970 UTC
        struct tm *tm_p = localtime(&epoch_time); // transforme l'information en heure locale
        int h = tm_p->tm_hour; // extrait les heures
        int m = tm_p->tm_min;  // extrait les minutes
        int s = tm_p->tm_sec;  // extrait les secondes
//        printf("Il est %.2d:%.2d:%.2d\n", h, m, s);
        clearClock();
        cpDigit(0,h / 10);
        cpDigit(6,h % 10);
        cpDigit(14,m / 10);
        cpDigit(20,m % 10);
        cpDigit(28,s / 10);
        cpDigit(34,s % 10);

        system("cls");
        printf("Il est\n\n");
        printClock();

    }
    return 0;
    }



