Balint Bogdan 2645 project, 200966741

Dependents:   2645Game_el15bb

Revision:
0:2eb4d7e86e2f
Child:
1:93a4cb86f100
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Snake.cpp	Thu May 04 12:01:04 2017 +0000
@@ -0,0 +1,183 @@
+#include "Snake.h"
+
+
+//Snake snakePart;
+snakePart snek;
+
+Snake::Snake()
+{
+
+}
+Snake::~Snake()
+{
+  
+    
+    //delete things create aboce in construcxtor
+}
+
+void Snake::init(int x, int y, int lenght){
+    
+    
+    //initalizing the starting variables
+    snek._x[0]=x;
+    snek._y[0]=y;
+    _length = lenght;
+    counter=0;
+    for (int i=0;_length>i;i++)
+    {   
+        snek._x[i]=x+i;
+        snek._y[i]=y;
+        snek._dir[i]=1;
+    }
+    _direction = 1;//1 is East, 2 is South, 3 is West, 4 is North
+    
+    
+    //putting food at middle of the map before randomizing
+    
+    
+    }
+
+void Snake::draw(N5110 &lcd){
+    lcd.clear();
+    lcd.drawRect(0,4,84,48-8,FILL_TRANSPARENT);
+    for ( int i=0; _length>i;i++)
+    {
+        if (snek._x!=0)
+            {
+                if (snek._y!=0)
+                    {
+                        lcd.setPixel(snek._x[i],snek._y[i]);
+                    }
+            }
+    
+    //draw the snake array
+    //draw lines from breakpoint to breakpoint to head
+    //draw food
+    //lcd.setPixel(48,28);
+    lcd.refresh();
+    }
+}
+void Snake::update(Gamepad &pad){
+    
+    d=pad.get_direction();
+        
+        
+        counter=_length-2;
+        for (int i= 0;_length >i ;i++)
+        {  
+                
+            
+            
+            if (snek._dir[i]==1)
+            {
+                snek._x[i]++;
+                snek._dir[counter]=1;
+                counter--;
+                //if (counter>0)
+                //{counter--;}
+                
+                }
+            if (snek._dir[i]==2)
+            {
+                snek._y[i]--;
+                snek._dir[counter]=2;
+                counter--;
+                //if (i>0)
+                //{counter--;}
+                
+                }
+            /*
+            //snek._x[i]=snek._x[i+1];
+           // snek._y[i]=snek._y[i+1];
+                switch (snek._dir[i])
+                        {
+                        case 1:
+                                snek._x[i]++;
+                                
+                        case 4: 
+                                snek._y[i]--;
+                        
+                        }
+        */
+                                                 
+                    //check dpad which way it is pointing
+                    //set direction accordingly, 1 is right, up is 2, 3 is left and 4 is down
+                    //set a breakpoint at head by snakeX/Y[i]
+                    //switch case to make sure direction is good
+                    //if head == food, _length++, and -direction we add 1 length
+                    // if head==wall game over
+    
+    
+        }
+        //if (counter>0)
+          //      {counter--;}
+        if (d==N)
+            {
+                
+                if (snek._dir[_length]!=4)
+                            {
+                                snek._dir[_length-1] = 2;
+                                
+                                //snek._y[5]--;
+                                //return;
+                                
+                            }
+                
+                
+                }
+                if (d==E)
+            {
+                
+                if (snek._dir[_length]!=3)
+                            {
+                                snek._dir[_length-1] = 1;
+                                
+                                //snek._y[5]--;
+                                //return;
+                                
+                            }
+                
+                
+                }
+        /*switch (d)
+            {
+                case N:
+                        
+                
+                /*case E:
+                        if (snek._dir[_length]!=3)
+                            {
+                                snek._dir[_length-1] = 1;
+                                
+                                //snek._y[5]--;
+                                //return;
+                                
+                            }*/
+                
+                        
+                            
+           // }
+        //counter=0;
+    
+ 
+    }
+
+snakePart Snake::add_point(int x, int y){
+    
+   
+    
+    
+    //snek._x=x;
+    //snek._y=y;
+    
+    
+    return;
+    
+   //_length++;
+    
+}
+void Snake::get_length(){
+    
+    //return _length;
+    
+    }
\ No newline at end of file