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
snake/snake.cpp@13:4026781772cb, 2018-05-06 (annotated)
- Committer:
- weiway
- Date:
- Sun May 06 12:44:41 2018 +0000
- Revision:
- 13:4026781772cb
- Child:
- 14:9e2ce28b4e63
...
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| weiway | 13:4026781772cb | 1 | #include "snake.h" |
| weiway | 13:4026781772cb | 2 | |
| weiway | 13:4026781772cb | 3 | |
| weiway | 13:4026781772cb | 4 | snake::snake(){ |
| weiway | 13:4026781772cb | 5 | |
| weiway | 13:4026781772cb | 6 | } |
| weiway | 13:4026781772cb | 7 | |
| weiway | 13:4026781772cb | 8 | |
| weiway | 13:4026781772cb | 9 | snake::~snake(){ |
| weiway | 13:4026781772cb | 10 | |
| weiway | 13:4026781772cb | 11 | } |
| weiway | 13:4026781772cb | 12 | |
| weiway | 13:4026781772cb | 13 | void snake::init(){ |
| weiway | 13:4026781772cb | 14 | for (int i = 0; i <_snakesize ; i++) { |
| weiway | 13:4026781772cb | 15 | _xoldpos[i] = 15; |
| weiway | 13:4026781772cb | 16 | _yoldpos[i] = 23; |
| weiway | 13:4026781772cb | 17 | _xnewpos[i] = 15 ; |
| weiway | 13:4026781772cb | 18 | _ynewpos[i] = 23; |
| weiway | 13:4026781772cb | 19 | } |
| weiway | 13:4026781772cb | 20 | dir_snake = 3; |
| weiway | 13:4026781772cb | 21 | _array = 100; |
| weiway | 13:4026781772cb | 22 | _point = 0; |
| weiway | 13:4026781772cb | 23 | _snakesize = 6; |
| weiway | 13:4026781772cb | 24 | } |
| weiway | 13:4026781772cb | 25 | |
| 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 | 13:4026781772cb | 35 | if ((d == S)) |
| weiway | 13:4026781772cb | 36 | { dir_snake = 1 ;} |
| weiway | 13:4026781772cb | 37 | if ((d == N)) |
| weiway | 13:4026781772cb | 38 | { dir_snake = 2 ;} |
| weiway | 13:4026781772cb | 39 | if ((d == E)) |
| weiway | 13:4026781772cb | 40 | { dir_snake = 3 ;} |
| weiway | 13:4026781772cb | 41 | if ((d == W)) |
| weiway | 13:4026781772cb | 42 | { dir_snake = 4 ;} |
| weiway | 13:4026781772cb | 43 | |
| weiway | 13:4026781772cb | 44 | } |
| weiway | 13:4026781772cb | 45 | |
| weiway | 13:4026781772cb | 46 | |
| weiway | 13:4026781772cb | 47 | void snake::draw(N5110 &lcd) |
| weiway | 13:4026781772cb | 48 | { |
| weiway | 13:4026781772cb | 49 | for(int i=0; i<_snakesize; i++) { |
| weiway | 13:4026781772cb | 50 | lcd.setPixel(_xnewpos[i],_ynewpos[i]); |
| weiway | 13:4026781772cb | 51 | } |
| weiway | 13:4026781772cb | 52 | } |
| weiway | 13:4026781772cb | 53 | |
| weiway | 13:4026781772cb | 54 | Vector2D snake::get_pos() |
| 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 | 13:4026781772cb | 60 | void snake::set_pos(Vector2D p) |
| 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 | 13:4026781772cb | 68 | void snake::point() |
| 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 | 13:4026781772cb | 75 | int snake::get_point() |
| weiway | 13:4026781772cb | 76 | { |
| weiway | 13:4026781772cb | 77 | return _point ; |
| weiway | 13:4026781772cb | 78 | } |
| weiway | 13:4026781772cb | 79 | |
| weiway | 13:4026781772cb | 80 | |
| weiway | 13:4026781772cb | 81 | void snake::n() { |
| weiway | 13:4026781772cb | 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 | 13:4026781772cb | 94 | |
| weiway | 13:4026781772cb | 95 | } |
| weiway | 13:4026781772cb | 96 | |
| weiway | 13:4026781772cb | 97 | |
| weiway | 13:4026781772cb | 98 | void snake::s(){ |
| 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 | 13:4026781772cb | 115 | void snake::w(){ |
| 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 | 13:4026781772cb | 132 | void snake::e(){ |
| 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 |