Balint Bogdan 2645 project, 200966741

Dependents:   2645Game_el15bb

Revision:
1:93a4cb86f100
Parent:
0:2eb4d7e86e2f
Child:
2:5e04e34a3b66
--- a/Snake.cpp	Thu May 04 12:01:04 2017 +0000
+++ b/Snake.cpp	Fri May 05 10:36:54 2017 +0000
@@ -4,6 +4,8 @@
 //Snake snakePart;
 snakePart snek;
 
+
+
 Snake::Snake()
 {
 
@@ -18,6 +20,7 @@
 void Snake::init(int x, int y, int lenght){
     
     
+    
     //initalizing the starting variables
     snek._x[0]=x;
     snek._y[0]=y;
@@ -29,12 +32,22 @@
         snek._y[i]=y;
         snek._dir[i]=1;
     }
+    snek._x[_length]=x+_length;
+    snek._y[_length]=y;
+    
+   /* snek._y[0]=y;
+    snek._y[1]=y+1;
+    snek._y[2]=y+2;
+    snek._y[3]=y+2;
+    snek._y[4]=y+3;
+    snek._y[5]=y+3;
+    snek._y[6]=y+4;*/
     _direction = 1;//1 is East, 2 is South, 3 is West, 4 is North
     
     
     //putting food at middle of the map before randomizing
-    
-    
+    printf("xog is %d  ", snek._x[_length-1]);
+    //printf("initalized");
     }
 
 void Snake::draw(N5110 &lcd){
@@ -55,37 +68,67 @@
     //draw food
     //lcd.setPixel(48,28);
     lcd.refresh();
+    //printf("drAwn");
     }
 }
 void Snake::update(Gamepad &pad){
     
     d=pad.get_direction();
-        
+        startx=snek._x[0];
         
         counter=_length-2;
-        for (int i= 0;_length >i ;i++)
-        {  
-                
-            
-            
-            if (snek._dir[i]==1)
+        
+           printf("x is %d  ", snek._x[_length-1]);
+            if (snek._dir[_length-1]==1)
             {
-                snek._x[i]++;
-                snek._dir[counter]=1;
-                counter--;
+                snek._x[_length]++;
+                startx=0;
+                //snek._dir[counter]=1;
+                //counter--;
                 //if (counter>0)
                 //{counter--;}
                 
                 }
-            if (snek._dir[i]==2)
+            if (snek._dir[_length-1]==2)
             {
-                snek._y[i]--;
-                snek._dir[counter]=2;
-                counter--;
+                snek._y[_length]--;
+                //snek._dir[counter]=2;
+                //counter--;
+                //if (i>0)
+                //{counter--;}
+                
+                }
+                if (snek._dir[_length-1]==3)
+            {
+                snek._x[_length]--;
+                //snek._dir[counter]=2;
+                //counter--;
                 //if (i>0)
                 //{counter--;}
                 
                 }
+                if (snek._dir[_length-1]==4)
+            {
+                snek._y[_length]++;
+                //snek._dir[counter]=2;
+                //counter--;
+                //if (i>0)
+                //{counter--;}
+                
+                }
+                
+                for (int i=0 ;_length<i ;i++)
+        {  
+            
+               //printf(" x = %d", snek._x[i]);
+                
+                snek._x[i]=snek._x[i+1];
+                snek._y[i]=snek._y[i+1];
+                //printf("done");
+            
+            
+            }
+            
             /*
             //snek._x[i]=snek._x[i+1];
            // snek._y[i]=snek._y[i+1];
@@ -108,7 +151,7 @@
                     // if head==wall game over
     
     
-        }
+        
         //if (counter>0)
           //      {counter--;}
         if (d==N)
@@ -139,6 +182,34 @@
                 
                 
                 }
+                if (d==W)
+            {
+                
+                if (snek._dir[_length]!=1)
+                            {
+                                snek._dir[_length-1] = 3;
+                                
+                                //snek._y[5]--;
+                                //return;
+                                
+                            }
+                
+                
+                }
+                if (d==S)
+            {
+                
+                if (snek._dir[_length]!=2)
+                            {
+                                snek._dir[_length-1] = 4;
+                                
+                                //snek._y[5]--;
+                                //return;
+                                
+                            }
+                
+                
+                }
         /*switch (d)
             {
                 case N:
@@ -158,7 +229,7 @@
                             
            // }
         //counter=0;
-    
+    printf("updated ");
  
     }