![](/media/cache/profiles/LinkedIn_0NghoZJ.jpeg.50x50_q85.jpg)
Snake vs Block Game to be run upon K64F.
Diff: Snake/Snake.cpp
- Revision:
- 22:ee698f66146f
- Parent:
- 21:e41126528cc6
- Child:
- 24:1c118b071430
--- a/Snake/Snake.cpp Wed Apr 10 04:08:13 2019 +0000 +++ b/Snake/Snake.cpp Wed Apr 10 05:24:20 2019 +0000 @@ -32,52 +32,16 @@ { if(m == 0){ _x[0] = WIDTH/2; //Spawns player sprite near the middle of the screen. - _x[1] = _x[0]; - _x[2] = _x[1]; - _x[3] = _x[2]; - _x[4] = _x[3]; - _x[5] = _x[4]; - _x[6] = _x[5]; - _x[7] = _x[6]; - _x[8] = _x[7]; - _x[9] = _x[8]; - _x[10] = _x[9]; - _x[11] = _x[10]; - _x[12] = _x[11]; - _x[13] = _x[12]; - _x[14] = _x[13]; - _y[0] = HEIGHT - 3; - _y[1] = _y[0] - 3; - _y[2] = _y[0] - 6; - _y[3] = _y[0] - 9; - _y[4] = _y[0] - 12; - _y[5] = _y[0] - 15; - _y[6] = _y[0] - 18; - _y[7] = _y[0] - 21; - _y[8] = _y[0] - 24; - _y[9] = _y[0] - 27; - _y[10] = _y[0] - 30; - _y[11] = _y[0] - 33; - _y[12] = _y[0] - 36; - _y[13] = _y[0] - 39; - _y[14] = _y[0] - 42; - b[0] = 1; - b[1] = 1; - b[2] = 1; - b[3] = 1; - b[4] = 1; - b[5] = 1; - b[6] = 1; - b[7] = 1; - b[8] = 1; - b[9] = 1; - b[10] = 1; - b[11] = 1; - b[12] = 1; - b[13] = 1; + _y[0] = HEIGHT - 3; + + for(int i=0; i<=13; i++) { + _x[i+1] = _x[i]; + _y[i+1] = _y[i] - 3; + b[i] = 1; + } b[14] = 1; m = m+1; - } + } //printf("SPRITE %d %d \n", _x[0], _y[0]); if(length == 0) { while ((pad.check_event(Gamepad::BACK_PRESSED) == false)) { @@ -886,397 +850,51 @@ -void Snake::update(Direction d,float mag,int length, int speed, int* b0_to_b14) +void Snake::update(Direction d,float mag,int length, int speed, int* b) { _speed = speed; //Speed changes depending on how much you push the joystick.(As Of Now) - b[0] = b0_to_b14[0]; - b[1] = b0_to_b14[1]; - b[2] = b0_to_b14[2]; - b[3] = b0_to_b14[3]; - b[4] = b0_to_b14[4]; - b[5] = b0_to_b14[5]; - b[6] = b0_to_b14[6]; - b[7] = b0_to_b14[7]; - b[8] = b0_to_b14[8]; - b[9] = b0_to_b14[9]; - b[10] = b0_to_b14[10]; - b[11] = b0_to_b14[11]; - b[12] = b0_to_b14[12]; - b[13] = b0_to_b14[13]; - b[14] = b0_to_b14[14]; - if(length > 1) { - if ((_x[0] > _x[1])&&(b[1] == 1)&&(b[0] == 1)) { - _x[0]-=_speed; - } - if ((_x[0] < _x[1])&&(b[1] == 1)&&(b[0] == 1)) { - _x[0]+=_speed; - } - } - if(length > 2) { - if ((_x[1] > _x[2])&&(b[2] == 1)&&(b[1] == 1)) { - _x[1]-=_speed; - } - if ((_x[1] < _x[2])&&(b[2] == 1)&&(b[1] == 1)) { - _x[1]+=_speed; - } - } - if(length > 3) { - if ((_x[2] > _x[3])&&(b[3] == 1)&&(b[2] == 1)) { - _x[2]-=_speed; - } - if ((_x[2] < _x[3])&&(b[3] == 1)&&(b[2] == 1)) { - _x[2]+=_speed; + for(int i=0; i<=13; i++) { + if(length > i+1) { + if ((_x[i] > _x[i+1])&&(b[i+1] == 1)&&(b[i] == 1)) { + _x[i]-=_speed; } - } - if(length > 4) { - if ((_x[3] > _x[4])&&(b[4] == 1)&&(b[3] == 1)) { - _x[3]-=_speed; - } - if ((_x[3] < _x[4])&&(b[4] == 1)&&(b[3] == 1)) { - _x[3]+=_speed; - } - } - if(length > 5) { - if ((_x[4] > _x[5])&&(b[5] == 1)&&(b[4] == 1)) { - _x[4]-=_speed; - } - if ((_x[4] < _x[5])&&(b[5] == 1)&&(b[4] == 1)) { - _x[4]+=_speed; - } - } - if(length > 6) { - if ((_x[5] > _x[6])&&(b[6] == 1)&&(b[5] == 1)) { - _x[5]-=_speed; - } - if ((_x[5] < _x[6])&&(b[6] == 1)&&(b[5] == 1)) { - _x[5]+=_speed; - } - } - if(length > 7) { - if ((_x[6] > _x[7])&&(b[7] == 1)&&(b[6] == 1)) { - _x[6]-=_speed; - } - if ((_x[6] < _x[7])&&(b[7] == 1)&&(b[6] == 1)) { - _x[6]+=_speed; - } - } - if(length > 8) { - if ((_x[7] > _x[8])&&(b[8] == 1)&&(b[7] == 1)) { - _x[7]-=_speed; - } - if ((_x[7] < _x[8])&&(b[8] == 1)&&(b[7] == 1)) { - _x[7]+=_speed; - } - } - if(length > 9) { - if ((_x[8] > _x[9])&&(b[9] == 1)&&(b[8] == 1)) { - _x[8]-=_speed; - } - if ((_x[8] < _x[9])&&(b[9] == 1)&&(b[8] == 1)) { - _x[8]+=_speed; - } - } - if(length > 10) { - if ((_x[9] > _x[10])&&(b[10] == 1)&&(b[9] == 1)) { - _x[9]-=_speed; - } - if ((_x[9] < _x[10])&&(b[10] == 1)&&(b[9] == 1)) { - _x[9]+=_speed; - } - } - if(length > 11) { - if ((_x[10] > _x[11])&&(b[11] == 1)&&(b[10] == 1)) { - _x[10]-=_speed; - } - if ((_x[10] < _x[11])&&(b[11] == 1)&&(b[10] == 1)) { - _x[10]+=_speed; - } - } - if(length > 12) { - if ((_x[11] > _x[12])&&(b[12] == 1)&&(b[11] == 1)) { - _x[11]-=_speed; - } - if ((_x[11] < _x[12])&&(b[12] == 1)&&(b[11] == 1)) { - _x[11]+=_speed; - } - } - if(length > 13) { - if ((_x[12] > _x[13])&&(b[13] == 1)&&(b[12] == 1)) { - _x[12]-=_speed; - } - if ((_x[12] < _x[13])&&(b[13] == 1)&&(b[12] == 1)) { - _x[12]+=_speed; + if ((_x[i] < _x[i+1])&&(b[i+1] == 1)&&(b[i] == 1)) { + _x[i]+=_speed; + } } } - if(length > 14) { - if ((_x[13] > _x[14])&&(b[14] == 1)&&(b[13] == 1)) { - _x[13]-=_speed; - } - if ((_x[13] < _x[14])&&(b[14] == 1)&&(b[13] == 1)) { - _x[13]+=_speed; - } - } - - if((length == 15)&&(b[14] == 1)) { - if (d == E) { - _x[14]+= _speed; - } - if (d == W) { - _x[14]-= _speed; - } - } - if((length == 14)&&(b[13] == 1)) { - if (d == E) { - _x[13]+= _speed; - } - if (d == W) { - _x[13]-= _speed; - } - } - if((length == 13)&&(b[12] == 1)) { - if (d == E) { - _x[12]+= _speed; - } - if (d == W) { - _x[12]-= _speed; - } - } - if((length == 12)&&(b[11] == 1)) { - if (d == E) { - _x[11]+= _speed; - } - if (d == W) { - _x[11]-= _speed; - } - } - if((length == 11)&&(b[10] == 1)) { - if (d == E) { - _x[10]+= _speed; - } - if (d == W) { - _x[10]-= _speed; - } - } - if((length == 10)&&(b[9] == 1)) { - if (d == E) { - _x[9]+= _speed; - } - if (d == W) { - _x[9]-= _speed; - } - } - if((length == 9)&&(b[8] == 1)) { - if (d == E) { - _x[8]+= _speed; - } - if (d == W) { - _x[8]-= _speed; - } - } - if((length == 8)&&(b[7] == 1)) { - if (d == E) { - _x[7]+= _speed; - } - if (d == W) { - _x[7]-= _speed; - } - } - if((length == 7)&&(b[6] == 1)) { - if (d == E) { - _x[6]+= _speed; - } - if (d == W) { - _x[6]-= _speed; - } - } - if((length == 6)&&(b[5] == 1)) { - if (d == E) { - _x[5]+= _speed; - } - if (d == W) { - _x[5]-= _speed; - } - } - if((length == 5)&&(b[4] == 1)) { - if (d == E) { - _x[4]+= _speed; - } - if (d == W) { - _x[4]-= _speed; - } - } - if((length == 4)&&(b[3] == 1)) { - if (d == E) { - _x[3]+= _speed; - } - if (d == W) { - _x[3]-= _speed; - } - } - if((length == 3)&&(b[2] == 1)) { - if (d == E) { - _x[2]+= _speed; - } - if (d == W) { - _x[2]-= _speed; - } - } - if((length == 2)&&(b[1] == 1)) { - if (d == E) { - _x[1]+= _speed; - } - if (d == W) { - _x[1]-= _speed; - } - } - if((length == 1)&&(b[0] == 1)) { - if (d == E) { - _x[0]+= _speed; - } - if (d == W) { - _x[0]-= _speed; - } + + for(int i=14; i>=0; i--) { + if((length == i+1)&&(b[i] == 1)) { + if (d == E) { + _x[i]+= _speed; + } + if (d == W) { + _x[i]-= _speed; + } + } } // the following makes sure that when the length is increased, the snake stays where it was when it ate food. - if(length < 2) { - _x[1] = _x[0]; - } - else if(length < 3) { - _x[2] = _x[1]; - } - else if(length < 4) { - _x[3] = _x[2]; - } - else if(length < 5) { - _x[4] = _x[3]; - } - else if(length < 6) { - _x[5] = _x[4]; - } - else if(length < 7) { - _x[6] = _x[5]; - } - else if(length < 8) { - _x[7] = _x[6]; - } - else if(length < 9) { - _x[8] = _x[7]; - } - else if(length < 10) { - _x[9] = _x[8]; - } - else if(length < 11) { - _x[10] = _x[9]; - } - else if(length < 12) { - _x[11] = _x[10]; - } - else if(length < 13) { - _x[12] = _x[11]; - } - else if(length < 14) { - _x[13] = _x[12]; - } - else if(length < 15) { - _x[14] = _x[13]; + for(int i=3; i<=15; i++) { + if(length < 2) { + _x[1] = _x[0]; + } + else if(length < i) { + _x[i-1] = _x[i-2]; + } } //Limits set so that the sprite does not travel off the screen. - if (_y[0] <= 0) { - _y[0] = 0; - } - if (_x[0] <= 0) { - _x[0] = 0; - } - if (_x[1] <= 0) { - _x[1] = 0; - } - if (_x[2] <= 0) { - _x[2] = 0; - } - if (_x[3] <= 0) { - _x[3] = 0; - } - if (_x[4] <= 0) { - _x[4] = 0; - } - if (_x[5] <= 0) { - _x[5] = 0; - } - if (_x[6] <= 0) { - _x[6] = 0; - } - if (_x[7] <= 0) { - _x[7] = 0; - } - if (_x[8] <= 0) { - _x[8] = 0; - } - if (_x[9] <= 0) { - _x[9] = 0; - } - if (_x[10] <= 0) { - _x[10] = 0; - } - if (_x[11] <= 0) { - _x[11] = 0; - } - if (_x[12] <= 0) { - _x[12] = 0; - } - if (_x[13] <= 0) { - _x[13] = 0; - } - if (_x[14] <= 0) { - _x[14] = 0; - } - if (_x[0] > 81) { - _x[0] = 81; - } - if (_x[1] > 81) { - _x[1] = 81; - } - if (_x[2] > 81) { - _x[2] = 81; - } - if (_x[3] > 81) { - _x[3] = 81; - } - if (_x[4] > 81) { - _x[4] = 81; - } - if (_x[5] > 81) { - _x[5] = 81; - } - if (_x[6] > 81) { - _x[6] = 81; - } - if (_x[7] > 81) { - _x[7] = 81; - } - if (_x[8] > 81) { - _x[8] = 81; - } - if (_x[9] > 81) { - _x[9] = 81; - } - if (_x[10] > 81) { - _x[10] = 81; - } - if (_x[11] > 81) { - _x[11] = 81; - } - if (_x[12] > 81) { - _x[12] = 81; - } - if (_x[13] > 81) { - _x[13] = 81; - } - if (_x[14] > 81) { - _x[14] = 81; + for(int i=0; i<=14; i++) { + if (_x[i] <= 0) { + _x[i] = 0; + } + if (_x[i] > 81) { + _x[i] = 81; + } } }