ELEC2645 (2017/18) / Mbed 2 deprecated el15ww

Dependencies:   mbed

Snake/Snake.cpp

Committer:
weiway
Date:
2018-05-03
Revision:
10:946a3835a7c7
Parent:
8:30ad5229cc0b

File content as of revision 10:946a3835a7c7:

#include "Snake.h"


snake::snake(){
    
}


snake::~snake(){
    
}

void snake::init(){   
    for (int i = 0; i <_point ; i++) {
        _xoldpos[i] = 15;       
        _yoldpos[i] = 23; 
        _xnewpos[i] = 15 ; 
        _ynewpos[i] = 23; 
    }
    dir_snake = 1;
    _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];
        }
    
}