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
Diff: snake/snake.cpp
- Revision:
- 13:4026781772cb
- Child:
- 14:9e2ce28b4e63
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/snake/snake.cpp Sun May 06 12:44:41 2018 +0000
@@ -0,0 +1,149 @@
+#include "snake.h"
+
+
+snake::snake(){
+
+}
+
+
+snake::~snake(){
+
+}
+
+void snake::init(){
+ for (int i = 0; i <_snakesize ; i++) {
+ _xoldpos[i] = 15;
+ _yoldpos[i] = 23;
+ _xnewpos[i] = 15 ;
+ _ynewpos[i] = 23;
+ }
+ dir_snake = 3;
+ _array = 100;
+ _point = 0;
+ _snakesize = 6;
+}
+
+void snake::update(Direction d,float mag){
+ if (dir_snake == 1){
+ s() ;}
+ else if (dir_snake == 2){
+ n();}
+ else if (dir_snake == 3){
+ e();}
+ else if (dir_snake == 4){
+ w();}
+ if ((d == S))
+ { dir_snake = 1 ;}
+ if ((d == N))
+ { dir_snake = 2 ;}
+ if ((d == E))
+ { dir_snake = 3 ;}
+ if ((d == W))
+ { dir_snake = 4 ;}
+
+}
+
+
+void snake::draw(N5110 &lcd)
+{
+ for(int i=0; i<_snakesize; i++) {
+ lcd.setPixel(_xnewpos[i],_ynewpos[i]);
+ }
+}
+
+Vector2D snake::get_pos()
+{
+ Vector2D p = {_xnewpos[0],_ynewpos[0]};
+ return p;
+}
+
+void snake::set_pos(Vector2D p)
+{
+ _xnewpos[0] = p.x;
+ _ynewpos[0] = p.y;
+
+}
+
+
+void snake::point()
+{
+ _point++;
+
+}
+
+
+int snake::get_point()
+{
+ return _point ;
+}
+
+
+void snake::n() {
+ _xnewpos[0] = _xoldpos[0] ;
+ for (int i = 0; i < _array; i++) {
+ _xnewpos[i+1] = _xoldpos[i];
+ }
+ _ynewpos[0] = _yoldpos[0]- 1;
+ for (int i = 0; i < _array-1; i++) {
+ _ynewpos[i+1] = _yoldpos[i];
+ }
+ for (int i = 0; i < _array; i++) {
+ _xoldpos[i] = _xnewpos[i];
+ _yoldpos[i] = _ynewpos[i];
+ }
+
+}
+
+
+void snake::s(){
+ _xnewpos[0] = _xoldpos[0] ;
+ for (int i = 0; i < _array; i++) {
+ _xnewpos[i+1] = _xoldpos[i];
+ }
+ _ynewpos[0] = _yoldpos[0]+ 1;
+ for (int i = 0; i < _array-1; i++) {
+ _ynewpos[i+1] = _yoldpos[i];
+ }
+ for (int i = 0; i < _array; i++) {
+ _xoldpos[i] = _xnewpos[i];
+ _yoldpos[i] = _ynewpos[i];
+ }
+
+}
+
+
+void snake::w(){
+ _xnewpos[0] = _xoldpos[0]-1;
+ for (int i = 0; i < _array; i++) {
+ _xnewpos[i+1] = _xoldpos[i];
+ }
+ _ynewpos[0] = _yoldpos[0];
+ for (int i = 0; i < _array-1; i++) {
+ _ynewpos[i+1] = _yoldpos[i];
+ }
+ for (int i = 0; i < _array; i++) {
+ _xoldpos[i] = _xnewpos[i];
+ _yoldpos[i] = _ynewpos[i];
+ }
+
+}
+
+
+void snake::e(){
+ _xnewpos[0] = _xoldpos[0]+1;
+ for (int i = 0; i < _array; i++) {
+ _xnewpos[i+1] = _xoldpos[i];
+ }
+ _ynewpos[0] = _yoldpos[0];
+ for (int i = 0; i < _array-1; i++) {
+ _ynewpos[i+1] = _yoldpos[i];
+ }
+ for (int i = 0; i < _array; i++) {
+ _xoldpos[i] = _xnewpos[i];
+ _yoldpos[i] = _ynewpos[i];
+ }
+
+}
+
+
+