ELEC2645 (2017/18) / Mbed 2 deprecated el15ww

Dependencies:   mbed

Revision:
13:4026781772cb
Child:
14:9e2ce28b4e63
diff -r d45bc5d878ad -r 4026781772cb snake/snake.cpp
--- /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];
+        }
+    
+}
+
+
+