ELEC2645 (2017/18) / Mbed 2 deprecated el15ww

Dependencies:   mbed

Committer:
weiway
Date:
Tue May 08 13:41:08 2018 +0000
Revision:
20:980b37fde361
Parent:
18:e58a1f8e72ad
adding doxygen documentation , comments and references

Who changed what in which revision?

UserRevisionLine numberNew contents of line
weiway 13:4026781772cb 1 #include "snake.h"
weiway 13:4026781772cb 2
weiway 13:4026781772cb 3 snake::snake(){
weiway 13:4026781772cb 4
weiway 13:4026781772cb 5 }
weiway 13:4026781772cb 6
weiway 13:4026781772cb 7
weiway 13:4026781772cb 8 snake::~snake(){
weiway 13:4026781772cb 9
weiway 13:4026781772cb 10 }
weiway 13:4026781772cb 11
weiway 20:980b37fde361 12 void snake::init(){ //initialise
weiway 20:980b37fde361 13 for (int i = 0; i <_point ; i++) {//the initial length of snake = 6 pixel. i++ until it = 6 .
weiway 20:980b37fde361 14 //the position both old and new x are changing as the snake move to east initially. And old and new y keep same position.
weiway 18:e58a1f8e72ad 15 _xoldpos[i] = 30;
weiway 13:4026781772cb 16 _yoldpos[i] = 23;
weiway 18:e58a1f8e72ad 17 _xnewpos[i] = 30 ;
weiway 13:4026781772cb 18 _ynewpos[i] = 23;
weiway 13:4026781772cb 19 }
weiway 20:980b37fde361 20 dir_snake = 3; // 3 = east . initial direction
weiway 13:4026781772cb 21 _array = 100;
weiway 14:9e2ce28b4e63 22 _point = 6;
weiway 14:9e2ce28b4e63 23
weiway 13:4026781772cb 24 }
weiway 20:980b37fde361 25 //direction of the snake
weiway 13:4026781772cb 26 void snake::update(Direction d,float mag){
weiway 13:4026781772cb 27 if (dir_snake == 1){
weiway 13:4026781772cb 28 s() ;}
weiway 13:4026781772cb 29 else if (dir_snake == 2){
weiway 13:4026781772cb 30 n();}
weiway 13:4026781772cb 31 else if (dir_snake == 3){
weiway 13:4026781772cb 32 e();}
weiway 13:4026781772cb 33 else if (dir_snake == 4){
weiway 13:4026781772cb 34 w();}
weiway 14:9e2ce28b4e63 35 if ((d == S) )
weiway 13:4026781772cb 36 { dir_snake = 1 ;}
weiway 14:9e2ce28b4e63 37 if ((d == N) )
weiway 13:4026781772cb 38 { dir_snake = 2 ;}
weiway 14:9e2ce28b4e63 39 if ((d == E) )
weiway 13:4026781772cb 40 { dir_snake = 3 ;}
weiway 14:9e2ce28b4e63 41 if ((d == W) )
weiway 13:4026781772cb 42 { dir_snake = 4 ;}
weiway 13:4026781772cb 43
weiway 13:4026781772cb 44 }
weiway 13:4026781772cb 45
weiway 20:980b37fde361 46 //draw the snake . the length of the snake is changing as the got point changing
weiway 13:4026781772cb 47 void snake::draw(N5110 &lcd)
weiway 13:4026781772cb 48 {
weiway 14:9e2ce28b4e63 49 for(int i=0; i<_point; i++) {
weiway 13:4026781772cb 50 lcd.setPixel(_xnewpos[i],_ynewpos[i]);
weiway 13:4026781772cb 51 }
weiway 13:4026781772cb 52 }
weiway 13:4026781772cb 53
weiway 20:980b37fde361 54 Vector2D snake::get_pos()//get the position of snake in 2D vector. From pong sample code
weiway 13:4026781772cb 55 {
weiway 13:4026781772cb 56 Vector2D p = {_xnewpos[0],_ynewpos[0]};
weiway 13:4026781772cb 57 return p;
weiway 13:4026781772cb 58 }
weiway 13:4026781772cb 59
weiway 20:980b37fde361 60 void snake::set_pos(Vector2D p)//set the position in 2D vector . From pong sample code
weiway 13:4026781772cb 61 {
weiway 13:4026781772cb 62 _xnewpos[0] = p.x;
weiway 13:4026781772cb 63 _ynewpos[0] = p.y;
weiway 13:4026781772cb 64
weiway 13:4026781772cb 65 }
weiway 13:4026781772cb 66
weiway 13:4026781772cb 67
weiway 20:980b37fde361 68 void snake::point()//To add the point that the snake ate.
weiway 13:4026781772cb 69 {
weiway 13:4026781772cb 70 _point++;
weiway 13:4026781772cb 71
weiway 13:4026781772cb 72 }
weiway 13:4026781772cb 73
weiway 13:4026781772cb 74
weiway 20:980b37fde361 75 int snake::get_point()//used to display the number of point
weiway 13:4026781772cb 76 {
weiway 14:9e2ce28b4e63 77 return _point -6 ;
weiway 13:4026781772cb 78 }
weiway 13:4026781772cb 79
weiway 13:4026781772cb 80
weiway 20:980b37fde361 81 void snake::n() {//snake move to north
weiway 20:980b37fde361 82 _xnewpos[0] = _xoldpos[0] ;
weiway 13:4026781772cb 83 for (int i = 0; i < _array; i++) {
weiway 13:4026781772cb 84 _xnewpos[i+1] = _xoldpos[i];
weiway 13:4026781772cb 85 }
weiway 13:4026781772cb 86 _ynewpos[0] = _yoldpos[0]- 1;
weiway 13:4026781772cb 87 for (int i = 0; i < _array-1; i++) {
weiway 13:4026781772cb 88 _ynewpos[i+1] = _yoldpos[i];
weiway 13:4026781772cb 89 }
weiway 13:4026781772cb 90 for (int i = 0; i < _array; i++) {
weiway 13:4026781772cb 91 _xoldpos[i] = _xnewpos[i];
weiway 13:4026781772cb 92 _yoldpos[i] = _ynewpos[i];
weiway 13:4026781772cb 93 }
weiway 15:47ea86f1ed70 94
weiway 13:4026781772cb 95 }
weiway 13:4026781772cb 96
weiway 13:4026781772cb 97
weiway 20:980b37fde361 98 void snake::s(){//snake move to south
weiway 13:4026781772cb 99 _xnewpos[0] = _xoldpos[0] ;
weiway 13:4026781772cb 100 for (int i = 0; i < _array; i++) {
weiway 13:4026781772cb 101 _xnewpos[i+1] = _xoldpos[i];
weiway 13:4026781772cb 102 }
weiway 13:4026781772cb 103 _ynewpos[0] = _yoldpos[0]+ 1;
weiway 13:4026781772cb 104 for (int i = 0; i < _array-1; i++) {
weiway 13:4026781772cb 105 _ynewpos[i+1] = _yoldpos[i];
weiway 13:4026781772cb 106 }
weiway 13:4026781772cb 107 for (int i = 0; i < _array; i++) {
weiway 13:4026781772cb 108 _xoldpos[i] = _xnewpos[i];
weiway 13:4026781772cb 109 _yoldpos[i] = _ynewpos[i];
weiway 13:4026781772cb 110 }
weiway 13:4026781772cb 111
weiway 13:4026781772cb 112 }
weiway 13:4026781772cb 113
weiway 13:4026781772cb 114
weiway 20:980b37fde361 115 void snake::w(){//snake move to west
weiway 13:4026781772cb 116 _xnewpos[0] = _xoldpos[0]-1;
weiway 13:4026781772cb 117 for (int i = 0; i < _array; i++) {
weiway 13:4026781772cb 118 _xnewpos[i+1] = _xoldpos[i];
weiway 13:4026781772cb 119 }
weiway 13:4026781772cb 120 _ynewpos[0] = _yoldpos[0];
weiway 13:4026781772cb 121 for (int i = 0; i < _array-1; i++) {
weiway 13:4026781772cb 122 _ynewpos[i+1] = _yoldpos[i];
weiway 13:4026781772cb 123 }
weiway 13:4026781772cb 124 for (int i = 0; i < _array; i++) {
weiway 13:4026781772cb 125 _xoldpos[i] = _xnewpos[i];
weiway 13:4026781772cb 126 _yoldpos[i] = _ynewpos[i];
weiway 13:4026781772cb 127 }
weiway 13:4026781772cb 128
weiway 13:4026781772cb 129 }
weiway 13:4026781772cb 130
weiway 13:4026781772cb 131
weiway 20:980b37fde361 132 void snake::e(){//snake move to east
weiway 13:4026781772cb 133 _xnewpos[0] = _xoldpos[0]+1;
weiway 13:4026781772cb 134 for (int i = 0; i < _array; i++) {
weiway 13:4026781772cb 135 _xnewpos[i+1] = _xoldpos[i];
weiway 13:4026781772cb 136 }
weiway 13:4026781772cb 137 _ynewpos[0] = _yoldpos[0];
weiway 13:4026781772cb 138 for (int i = 0; i < _array-1; i++) {
weiway 13:4026781772cb 139 _ynewpos[i+1] = _yoldpos[i];
weiway 13:4026781772cb 140 }
weiway 13:4026781772cb 141 for (int i = 0; i < _array; i++) {
weiway 13:4026781772cb 142 _xoldpos[i] = _xnewpos[i];
weiway 13:4026781772cb 143 _yoldpos[i] = _ynewpos[i];
weiway 13:4026781772cb 144 }
weiway 13:4026781772cb 145
weiway 13:4026781772cb 146 }
weiway 13:4026781772cb 147
weiway 13:4026781772cb 148
weiway 13:4026781772cb 149