diff --git a/main.c b/main.c
index c711c887fac81abc0d05532b0891e032fd525514..d8970ef31ce6e3e530936a2f2d09948f4a8eab3e 100644
--- a/main.c
+++ b/main.c
@@ -2,11 +2,12 @@
 #include <stdlib.h>
 #include <time.h>
 #include <unistd.h>
+#include <stdint.h>
 #include "gfx/gfx.h"
 #include "queue/queue_ptr_int.h"
 #include "snake.h"
-#define SCREEN_W 500
-#define SCREEN_H 500
+#define SCREEN_W 200
+#define SCREEN_H 200
 
 /* int main(){
     tant que (jeu pas fini){
@@ -40,9 +41,25 @@
     }
  }
 
- int main(){
-    struct timespec start, finish;
-    int elapsed; // vars for time func
+ int get_input(int argc, char *argv[] , int *nb_food,int *time_food){
+    printf("%s, %s\n", argv[1], argv[2]);
+    if (argc != 3){
+        return 0;
+    }
+    else if ((atoi(argv[1]) <= 0) || (atoi(argv[2]) <= 0)){ 
+        return 0;
+    }
+    else {
+
+        *nb_food = strtol(argv[1], NULL, 10);
+        *time_food = strtol(argv[2], NULL, 10);
+        
+    }
+    return 1;
+}
+
+ int main(int argc, char *argv[]){
+    
 
     snake_t snake = create_snake(SCREEN_W, SCREEN_H);
     board_t board = create_board(SCREEN_W, SCREEN_H);
@@ -54,16 +71,22 @@
         fprintf(stderr, "Graphics initialization failed!\n");
         return EXIT_FAILURE;
     }
-
+     SDL_SetWindowSize(ctxt->window, 1000 ,1000);
+     SDL_SetWindowPosition(ctxt->window, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED);
+    //SDL_RenderSetLogicalSize(ctxt->renderer,1000,1000);
     game_status_t status;
 
 
-    int nb_food = 8;
-    int sec = 5;
-    double total_time;
+    uint32_t nb_food;
+    uint32_t sec;
+    get_input(argc, argv, &nb_food, &sec);
+    uint64_t total_time;
 
+    struct timespec start, finish;
+    uint32_t elapsed; // vars for time func
 
     while(status != WON && status != LOST){
+        
         clock_gettime(CLOCK_MONOTONIC, &start);
         gfx_present(ctxt);
         
@@ -80,16 +103,21 @@
         printf("%d\n", queue_count(snake.body));
         printf("debut %d\n", snake.body.debut->coordinates.x); */
 
-        if (total_time >= sec){
+        if (total_time / 100000000 >= sec){
             gen_food(nb_food, &board);
             total_time = 0;
         }
 
         // Algorithme de mise à jour d'une frame
         clock_gettime(CLOCK_MONOTONIC, &finish);
-        elapsed = (finish.tv_nsec - start.tv_nsec);
-        total_time += (finish.tv_sec - start.tv_sec);
-        usleep(elapsed / 100);
+        elapsed = (finish.tv_sec - start.tv_sec) + (finish.tv_nsec - start.tv_nsec);
+        if (elapsed > 3000000){
+            elapsed = 500000;
+        }
+        total_time += elapsed;
+        //printf("%d\n", elapsed);
+        
+        usleep((elapsed / 1000) * 40);
     } 
     gfx_destroy(ctxt);
     queue_detruire(&snake.body);
diff --git a/snake.c b/snake.c
index 5e8cdf46743bbe84c1b8f78ce235abd749a593e2..75ead8eb78d3c352838854bca15201f4e2eec06a 100644
--- a/snake.c
+++ b/snake.c
@@ -110,6 +110,21 @@ void gen_food(int max, board_t *board){
     }
 }
 
+uint32_t* enlarge_pixels(board_t board, int factor) {
+    int old_size = board.size_x*board.size_y;
+    int new_size = old_size * factor;
+    uint32_t *new_pixels = (uint32_t *)malloc(new_size * sizeof(uint32_t));
+    for (int i = 0; i < old_size; i++) {
+        for (int j = 0; j < factor; j++) {
+            new_pixels[i * factor + j] = board.pixels[i];
+        }
+    }
+
+    // replace the original pixel array with the enlarged one
+    return new_pixels;
+}
+
+
 /* 
 avancer(){
  //   ajouter un elem avec coordonées + ptr sur celui d'avant , puis enlever le dernier elem, sauf si l'on a mangé
diff --git a/snake.h b/snake.h
index e65a230acbb4beea2ff870a07e611ddabe444cf9..8e7707938103b6df3feda43566134107e6c59779 100644
--- a/snake.h
+++ b/snake.h
@@ -42,5 +42,6 @@ game_status_t move(snake_t *snake, board_t *board);
 
 void gen_food(int max, board_t *board);
 
+uint32_t* enlarge_pixels(board_t board, int factor);
 
 #endif
\ No newline at end of file