diff --git a/grid_square.c b/grid_square.c
new file mode 100644
index 0000000000000000000000000000000000000000..b5ae8ee639eb07fa2c7627711195018acdd5055a
--- /dev/null
+++ b/grid_square.c
@@ -0,0 +1,101 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <graphics.h>
+#include <math.h>
+
+#define GRID 5
+int maxx, maxy;
+int kbhit() {
+    struct timeval tv;
+    fd_set fds;
+    tv.tv_sec = 0;
+    tv.tv_usec = 0;
+    FD_ZERO(&fds);
+    FD_SET(STDIN_FILENO, &fds); //STDIN_FILENO is 0
+    select(STDIN_FILENO+1, &fds, NULL, NULL, &tv);
+    return FD_ISSET(STDIN_FILENO, &fds);
+}
+void setpixel(int x, int y) {
+    int xp, yp;
+    if(x>0) {
+        xp = (x*GRID) + 2 + (maxx/2);
+    } else {
+        xp = (maxx/2) + (x*GRID) - 2 + GRID;
+    }
+    if(y>0) {
+        yp = maxy - ((y*GRID) + 2 + (maxy/2));
+    } else {
+        yp = maxy - ((maxy/2) + (y*GRID) - 2 + GRID);
+    }
+    
+    // setfillstyle(SOLID_FILL, c);
+    floodfill(xp, yp, YELLOW);
+    // setfillstyle(SOLID_FILL, WHITE);
+}
+void drawlineBLD(int x1,int y1, int x2, int y2){
+    int dx, dy, p, x, y;
+
+    dx = x2 - x1;
+    dy = y2 - y1;
+
+    x = x1;
+    y = y1;
+
+    p=2*dy-dx;
+
+    while(x<x2)
+    {
+        setpixel(x,y);
+        if(p>=0) {
+            y=y+1;
+            p=p+2*dy-2*dx;
+        } else {
+            p=p+2*dy;
+        }
+        x=x+1;
+    }
+}
+void drawgrid() {
+    int i, j;
+    setcolor(GREEN);
+    line(maxx/2, 0, maxx/2, maxy);
+    line(0, maxy/2, maxx, maxy/2);
+    setcolor(YELLOW);
+    for (i=maxx/2; i<maxx; i+=GRID) {
+        line(i, 0, i, maxy);
+        line(maxx-i, 0, maxx-i, maxy);
+    }
+    for (j=maxy/2; j < maxy; j+=GRID) {
+        line(0, j, maxx, j);
+        line(0, maxy-j, maxx, maxy-j);
+    }
+    setcolor(WHITE);
+}
+void drawcar(int xc, int yc) {
+    drawlineBLD(xc,yc,xc+5,yc);
+}
+int main() {
+    int gd = DETECT, gm;
+    int x, y;
+    initgraph(&gd, &gm, "");
+    maxx = getmaxx();
+    maxy = getmaxy();
+    x = -5;
+    y = 5;
+    while(!kbhit()) {
+        if(x < 5) {
+            x++;
+        } else {
+            break;
+        }
+        drawgrid();
+        drawcar(x,y);
+
+        delay(1000);
+        cleardevice();
+    }
+    
+    
+    getch();
+    return 0;
+}
\ No newline at end of file