#include <stdlib.h>
#include <stdio.h>
#include <graph.h>
#include "serpent.h"
#include "Oeuf.h"
#include "time.h"
#include "main.h"
#include "menu.h"
#define CYCLE 100000L

int lancer_jeu(){
    int go_on=1;
    int pause = 1;
    int segment = 10;
    int direction = 4;
    int minute = 0;
    int seconde = 0;
    int seconde_actuel = 0;
    int old_seconde = 0;
    unsigned long int suivant;
    int pos_x[2400];
    int pos_y[2400];
    int old_x[2400];
    int old_y[2400];
    int oeufx[5];
    int oeufy[5];
    int murx[30];
    int mury[30];
    char timer[6];
    int *pointeur_segment = &segment;
    int *pointeur_direction = &direction;
    int *pointeur_minute = &minute;
    int *pointeur_seconde = &seconde;
    unsigned long int *pointeur_suivant = &suivant;
    int *pointeur_seconde_actuel = &seconde_actuel;
    int *pointeur_old_seconde = &old_seconde;
    int *pointeur_pause = &pause;
    suivant = Microsecondes()+CYCLE;
    old_seconde=(suivant/1000000)%10;
    DessinerScene(murx, mury, minute, seconde ,timer);
    InitialiserOeufs(oeufx, oeufy, segment);
    Serpent(pos_x, pos_y, old_x, old_y, pointeur_segment, murx, mury, &go_on, pointeur_direction);
    bordure(segment);
    Update_Serpent(pos_x, pos_y, segment, old_x, old_y, pointeur_direction);
    while(go_on==1){
        Controle(pointeur_direction, 0, &go_on, pointeur_pause);
        if(pause == 1){
        Timer( pointeur_minute, pointeur_seconde,  pointeur_suivant, pointeur_seconde_actuel, pointeur_old_seconde, timer);
        Update_Serpent(pos_x, pos_y, segment, old_x, old_y, pointeur_direction);
        dessinerSerpent(pos_x, pos_y, segment, old_x, old_y);
        Collision_Serpent(pos_x, pos_y, segment, murx, mury, &go_on);
        usleep(90000);
        Oeuf(pos_x, pos_y, oeufx, oeufy, pointeur_segment);
    }
    }
}
int main(void){
    int choix = 0;
    InitialiserGraphique();
    CreerFenetre(350,100,1200,900);
    EffacerEcran(CouleurParComposante(0,0,0));
    Menu();
    if(Menu() == 1){
     lancer_jeu();
    }
    if(Menu() == 0){
        Menu();
    }
    FermerGraphique();
    return EXIT_SUCCESS;
}

