Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed ll16j23s_test_docs
Diff: SnakeBody/SnakeBody.cpp
- Revision:
- 9:0571880085cc
- Parent:
- 8:bcc3403d7e79
- Child:
- 10:a2d643b3c782
--- a/SnakeBody/SnakeBody.cpp Mon May 25 14:45:32 2020 +0000 +++ b/SnakeBody/SnakeBody.cpp Mon May 25 20:31:52 2020 +0000 @@ -10,8 +10,7 @@ _d = 0; } -SnakeBody::~SnakeBody() -{ +SnakeBody::~SnakeBody() { //destructor } @@ -85,30 +84,40 @@ _body_x.erase(_body_x.begin() + _length, _body_x.end()); _body_y.erase(_body_y.begin() + _length, _body_y.end()); } + if(_length_increase > 0){ + _length++; + _length_increase--; + //_body_y.at(_length + 1) = 0; + } } void SnakeBody::draw_body(N5110 &lcd){ lcd.drawRect(_x_head,_y_head,2,2,FILL_BLACK); - for(int i = 0; i < _length; i++) { + for(int i = 0; i < _length - 3; i++) { lcd.drawRect(_body_x[i],_body_y[i],2,2,FILL_BLACK); } } -bool SnakeBody::snake_snake_collision(Gamepad &pad){ - if (_state > 0) { - for(int i = 3; i < _length; i++) { +void SnakeBody::snake_snake_collision(Gamepad &pad, bool &_death){ + if (_state > 0) { + for(int i = 3; i < _length - 3; i++) { if (_x_head == _body_x[i] && _y_head == _body_y[i]) { //checks if head coord is the same as any of the body coords - pad.led(1,0.9); - //printf("DEAD \n"); + printf("DEAD \n"); _state = 0; - return true; - } else { - //pad.led(1,0.0); - //printf("ALIVE \n"); - //return false; + _death = true; } } } +} + +void SnakeBody::add_length(int increase){ + _length_increase += increase; +} + +void SnakeBody::run(Gamepad &pad, N5110 &lcd, bool &_death){ + snake_movement(pad); + draw_body(lcd); + snake_snake_collision(pad, _death); } \ No newline at end of file