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@10:946a3835a7c7, 2018-05-03 (annotated)
- Committer:
- weiway
- Date:
- Thu May 03 12:46:31 2018 +0000
- Revision:
- 10:946a3835a7c7
- Parent:
- 8:30ad5229cc0b
engine and the function of each direction
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| weiway | 1:6bcf09972c0d | 1 | #include "Snake.h" |
| weiway | 1:6bcf09972c0d | 2 | |
| weiway | 1:6bcf09972c0d | 3 | |
| weiway | 10:946a3835a7c7 | 4 | snake::snake(){ |
| weiway | 1:6bcf09972c0d | 5 | |
| weiway | 1:6bcf09972c0d | 6 | } |
| weiway | 1:6bcf09972c0d | 7 | |
| weiway | 1:6bcf09972c0d | 8 | |
| weiway | 10:946a3835a7c7 | 9 | snake::~snake(){ |
| weiway | 1:6bcf09972c0d | 10 | |
| weiway | 1:6bcf09972c0d | 11 | } |
| weiway | 1:6bcf09972c0d | 12 | |
| weiway | 5:b3ad78d527c7 | 13 | void snake::init(){ |
| weiway | 5:b3ad78d527c7 | 14 | for (int i = 0; i <_point ; i++) { |
| weiway | 5:b3ad78d527c7 | 15 | _xoldpos[i] = 15; |
| weiway | 5:b3ad78d527c7 | 16 | _yoldpos[i] = 23; |
| weiway | 5:b3ad78d527c7 | 17 | _xnewpos[i] = 15 ; |
| weiway | 5:b3ad78d527c7 | 18 | _ynewpos[i] = 23; |
| weiway | 5:b3ad78d527c7 | 19 | } |
| weiway | 7:bd4b84e2320e | 20 | dir_snake = 1; |
| weiway | 4:5b1c3b7cd894 | 21 | _array = 100; |
| weiway | 8:30ad5229cc0b | 22 | _point = 0; |
| weiway | 8:30ad5229cc0b | 23 | _snakesize = 6; |
| weiway | 5:b3ad78d527c7 | 24 | } |
| weiway | 3:60df0fd90787 | 25 | |
| weiway | 6:53c1fda99a3a | 26 | void snake::update(Direction d,float mag){ |
| weiway | 7:bd4b84e2320e | 27 | if (dir_snake == 1){ |
| weiway | 7:bd4b84e2320e | 28 | s ;} |
| weiway | 7:bd4b84e2320e | 29 | else if (dir_snake == 2){ |
| weiway | 7:bd4b84e2320e | 30 | n;} |
| weiway | 7:bd4b84e2320e | 31 | else if (dir_snake == 3){ |
| weiway | 7:bd4b84e2320e | 32 | e;} |
| weiway | 7:bd4b84e2320e | 33 | else if (dir_snake == 4){ |
| weiway | 7:bd4b84e2320e | 34 | w;} |
| weiway | 7:bd4b84e2320e | 35 | if ((d == S)) |
| weiway | 7:bd4b84e2320e | 36 | { dir_snake = 1 ;} |
| weiway | 7:bd4b84e2320e | 37 | if ((d == N)) |
| weiway | 7:bd4b84e2320e | 38 | { dir_snake = 2 ;} |
| weiway | 7:bd4b84e2320e | 39 | if ((d == E)) |
| weiway | 7:bd4b84e2320e | 40 | { dir_snake = 3 ;} |
| weiway | 7:bd4b84e2320e | 41 | if ((d == W)) |
| weiway | 7:bd4b84e2320e | 42 | { dir_snake = 4 ;} |
| weiway | 7:bd4b84e2320e | 43 | |
| weiway | 7:bd4b84e2320e | 44 | } |
| weiway | 8:30ad5229cc0b | 45 | |
| weiway | 8:30ad5229cc0b | 46 | |
| weiway | 8:30ad5229cc0b | 47 | void snake::draw(N5110 &lcd) |
| weiway | 8:30ad5229cc0b | 48 | { |
| weiway | 8:30ad5229cc0b | 49 | for(int i=0; i<_snakesize; i++) { |
| weiway | 8:30ad5229cc0b | 50 | lcd.setPixel(_xnewpos[i],_ynewpos[i]); |
| weiway | 8:30ad5229cc0b | 51 | } |
| weiway | 8:30ad5229cc0b | 52 | } |
| weiway | 8:30ad5229cc0b | 53 | |
| weiway | 8:30ad5229cc0b | 54 | Vector2D snake::get_pos() |
| weiway | 8:30ad5229cc0b | 55 | { |
| weiway | 8:30ad5229cc0b | 56 | Vector2D p = {_xnewpos[0],_ynewpos[0]}; |
| weiway | 8:30ad5229cc0b | 57 | return p; |
| weiway | 8:30ad5229cc0b | 58 | } |
| weiway | 8:30ad5229cc0b | 59 | |
| weiway | 8:30ad5229cc0b | 60 | void snake::set_pos(Vector2D p) |
| weiway | 8:30ad5229cc0b | 61 | { |
| weiway | 8:30ad5229cc0b | 62 | _xnewpos[0] = p.x; |
| weiway | 8:30ad5229cc0b | 63 | _ynewpos[0] = p.y; |
| weiway | 8:30ad5229cc0b | 64 | |
| weiway | 8:30ad5229cc0b | 65 | } |
| weiway | 8:30ad5229cc0b | 66 | |
| weiway | 8:30ad5229cc0b | 67 | |
| weiway | 8:30ad5229cc0b | 68 | void snake::point() |
| weiway | 8:30ad5229cc0b | 69 | { |
| weiway | 8:30ad5229cc0b | 70 | _point++; |
| weiway | 8:30ad5229cc0b | 71 | |
| weiway | 8:30ad5229cc0b | 72 | } |
| weiway | 8:30ad5229cc0b | 73 | |
| weiway | 8:30ad5229cc0b | 74 | |
| weiway | 8:30ad5229cc0b | 75 | int snake::get_point() |
| weiway | 8:30ad5229cc0b | 76 | { |
| weiway | 8:30ad5229cc0b | 77 | return _point ; |
| weiway | 8:30ad5229cc0b | 78 | } |
| weiway | 8:30ad5229cc0b | 79 | |
| weiway | 8:30ad5229cc0b | 80 | |
| weiway | 10:946a3835a7c7 | 81 | void snake::n { |
| weiway | 10:946a3835a7c7 | 82 | _xnewpos[0] = _xoldpos[0] ; |
| weiway | 10:946a3835a7c7 | 83 | for (int i = 0; i < _array; i++) { |
| weiway | 10:946a3835a7c7 | 84 | _xnewpos[i+1] = _xoldpos[i]; |
| weiway | 10:946a3835a7c7 | 85 | } |
| weiway | 10:946a3835a7c7 | 86 | _ynewpos[0] = _yoldpos[0]- 1; |
| weiway | 10:946a3835a7c7 | 87 | for (int i = 0; i < _array-1; i++) { |
| weiway | 10:946a3835a7c7 | 88 | _ynewpos[i+1] = _yoldpos[i]; |
| weiway | 10:946a3835a7c7 | 89 | } |
| weiway | 10:946a3835a7c7 | 90 | for (int i = 0; i < _array; i++) { |
| weiway | 10:946a3835a7c7 | 91 | _xoldpos[i] = _xnewpos[i]; |
| weiway | 10:946a3835a7c7 | 92 | _yoldpos[i] = _ynewpos[i]; |
| weiway | 10:946a3835a7c7 | 93 | } |
| weiway | 10:946a3835a7c7 | 94 | |
| weiway | 10:946a3835a7c7 | 95 | } |
| weiway | 8:30ad5229cc0b | 96 | |
| weiway | 8:30ad5229cc0b | 97 | |
| weiway | 10:946a3835a7c7 | 98 | void snake::s{ |
| weiway | 10:946a3835a7c7 | 99 | _xnewpos[0] = _xoldpos[0] ; |
| weiway | 10:946a3835a7c7 | 100 | for (int i = 0; i < _array; i++) { |
| weiway | 10:946a3835a7c7 | 101 | _xnewpos[i+1] = _xoldpos[i]; |
| weiway | 10:946a3835a7c7 | 102 | } |
| weiway | 10:946a3835a7c7 | 103 | _ynewpos[0] = _yoldpos[0]+ 1; |
| weiway | 10:946a3835a7c7 | 104 | for (int i = 0; i < _array-1; i++) { |
| weiway | 10:946a3835a7c7 | 105 | _ynewpos[i+1] = _yoldpos[i]; |
| weiway | 10:946a3835a7c7 | 106 | } |
| weiway | 10:946a3835a7c7 | 107 | for (int i = 0; i < _array; i++) { |
| weiway | 10:946a3835a7c7 | 108 | _xoldpos[i] = _xnewpos[i]; |
| weiway | 10:946a3835a7c7 | 109 | _yoldpos[i] = _ynewpos[i]; |
| weiway | 10:946a3835a7c7 | 110 | } |
| weiway | 10:946a3835a7c7 | 111 | |
| weiway | 10:946a3835a7c7 | 112 | } |
| weiway | 8:30ad5229cc0b | 113 | |
| weiway | 8:30ad5229cc0b | 114 | |
| weiway | 10:946a3835a7c7 | 115 | void snake::w{ |
| weiway | 10:946a3835a7c7 | 116 | _xnewpos[0] = _xoldpos[0]-1; |
| weiway | 10:946a3835a7c7 | 117 | for (int i = 0; i < _array; i++) { |
| weiway | 10:946a3835a7c7 | 118 | _xnewpos[i+1] = _xoldpos[i]; |
| weiway | 10:946a3835a7c7 | 119 | } |
| weiway | 10:946a3835a7c7 | 120 | _ynewpos[0] = _yoldpos[0]; |
| weiway | 10:946a3835a7c7 | 121 | for (int i = 0; i < _array-1; i++) { |
| weiway | 10:946a3835a7c7 | 122 | _ynewpos[i+1] = _yoldpos[i]; |
| weiway | 10:946a3835a7c7 | 123 | } |
| weiway | 10:946a3835a7c7 | 124 | for (int i = 0; i < _array; i++) { |
| weiway | 10:946a3835a7c7 | 125 | _xoldpos[i] = _xnewpos[i]; |
| weiway | 10:946a3835a7c7 | 126 | _yoldpos[i] = _ynewpos[i]; |
| weiway | 10:946a3835a7c7 | 127 | } |
| weiway | 10:946a3835a7c7 | 128 | |
| weiway | 10:946a3835a7c7 | 129 | } |
| weiway | 10:946a3835a7c7 | 130 | |
| weiway | 8:30ad5229cc0b | 131 | |
| weiway | 10:946a3835a7c7 | 132 | void snake::e{ |
| weiway | 10:946a3835a7c7 | 133 | _xnewpos[0] = _xoldpos[0]+1; |
| weiway | 10:946a3835a7c7 | 134 | for (int i = 0; i < _array; i++) { |
| weiway | 10:946a3835a7c7 | 135 | _xnewpos[i+1] = _xoldpos[i]; |
| weiway | 10:946a3835a7c7 | 136 | } |
| weiway | 10:946a3835a7c7 | 137 | _ynewpos[0] = _yoldpos[0]; |
| weiway | 10:946a3835a7c7 | 138 | for (int i = 0; i < _array-1; i++) { |
| weiway | 10:946a3835a7c7 | 139 | _ynewpos[i+1] = _yoldpos[i]; |
| weiway | 10:946a3835a7c7 | 140 | } |
| weiway | 10:946a3835a7c7 | 141 | for (int i = 0; i < _array; i++) { |
| weiway | 10:946a3835a7c7 | 142 | _xoldpos[i] = _xnewpos[i]; |
| weiway | 10:946a3835a7c7 | 143 | _yoldpos[i] = _ynewpos[i]; |
| weiway | 10:946a3835a7c7 | 144 | } |
| weiway | 10:946a3835a7c7 | 145 | |
| weiway | 10:946a3835a7c7 | 146 | } |
| weiway | 8:30ad5229cc0b | 147 | |
| weiway | 8:30ad5229cc0b | 148 | |
| weiway | 8:30ad5229cc0b | 149 |