Balint Bogdan 2645 project, 200966741
Diff: Snake.cpp
- Revision:
- 1:93a4cb86f100
- Parent:
- 0:2eb4d7e86e2f
- Child:
- 2:5e04e34a3b66
diff -r 2eb4d7e86e2f -r 93a4cb86f100 Snake.cpp --- 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 "); }