ZIYI CHEN ml17z4c 201214999
Dependencies: mbed
Game/Game.cpp@8:52e0506e98b8, 2019-05-06 (annotated)
- Committer:
- ziyi11
- Date:
- Mon May 06 00:06:15 2019 +0000
- Revision:
- 8:52e0506e98b8
- Parent:
- 7:8b6f175fcb0e
- Child:
- 9:a8b2086a46e5
add game.h and game.cpp although it still has some errors
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ziyi11 | 8:52e0506e98b8 | 1 | #include "Game.h" |
ziyi11 | 8:52e0506e98b8 | 2 | |
ziyi11 | 8:52e0506e98b8 | 3 | |
ziyi11 | 8:52e0506e98b8 | 4 | Snake::Snake() |
ziyi11 | 8:52e0506e98b8 | 5 | { |
ziyi11 | 8:52e0506e98b8 | 6 | |
ziyi11 | 8:52e0506e98b8 | 7 | } |
ziyi11 | 8:52e0506e98b8 | 8 | |
ziyi11 | 8:52e0506e98b8 | 9 | Snake::~Snake() |
ziyi11 | 8:52e0506e98b8 | 10 | { |
ziyi11 | 8:52e0506e98b8 | 11 | |
ziyi11 | 8:52e0506e98b8 | 12 | } |
ziyi11 | 8:52e0506e98b8 | 13 | |
ziyi11 | 8:52e0506e98b8 | 14 | void Snake::init(int x, int y) |
ziyi11 | 8:52e0506e98b8 | 15 | { |
ziyi11 | 8:52e0506e98b8 | 16 | _length = 5; |
ziyi11 | 8:52e0506e98b8 | 17 | _oldDirection = 'N'; |
ziyi11 | 8:52e0506e98b8 | 18 | memset(_x, 0, sizeof(_x)); |
ziyi11 | 8:52e0506e98b8 | 19 | memset(_y, 0, sizeof(_y)); |
ziyi11 | 8:52e0506e98b8 | 20 | |
ziyi11 | 8:52e0506e98b8 | 21 | |
ziyi11 | 8:52e0506e98b8 | 22 | for (int i = 0; i < _length; i++) { |
ziyi11 | 8:52e0506e98b8 | 23 | _x[i] = x; |
ziyi11 | 8:52e0506e98b8 | 24 | _y[i] = y + i; |
ziyi11 | 8:52e0506e98b8 | 25 | } |
ziyi11 | 8:52e0506e98b8 | 26 | |
ziyi11 | 8:52e0506e98b8 | 27 | printf("Snake init\n"); |
ziyi11 | 8:52e0506e98b8 | 28 | } |
ziyi11 | 8:52e0506e98b8 | 29 | |
ziyi11 | 8:52e0506e98b8 | 30 | void Snake::update(Direction d) |
ziyi11 | 8:52e0506e98b8 | 31 | { |
ziyi11 | 8:52e0506e98b8 | 32 | |
ziyi11 | 8:52e0506e98b8 | 33 | for (int i = _length-1; i >= 1; i--) { |
ziyi11 | 8:52e0506e98b8 | 34 | _x[i] = _x[i-1]; |
ziyi11 | 8:52e0506e98b8 | 35 | _y[i] = _y[i-1]; |
ziyi11 | 8:52e0506e98b8 | 36 | } |
ziyi11 | 8:52e0506e98b8 | 37 | |
ziyi11 | 8:52e0506e98b8 | 38 | if (_oldDirection == 'N') { |
ziyi11 | 8:52e0506e98b8 | 39 | _y[0] = _y[0] - 1;} |
ziyi11 | 8:52e0506e98b8 | 40 | else if (_oldDirection == 'S') { |
ziyi11 | 8:52e0506e98b8 | 41 | _y[0] = _y[0] + 1;} |
ziyi11 | 8:52e0506e98b8 | 42 | else if (_oldDirection == 'E') { |
ziyi11 | 8:52e0506e98b8 | 43 | _x[0] = _x[0] + 1;} |
ziyi11 | 8:52e0506e98b8 | 44 | else if (_oldDirection == 'W') { |
ziyi11 | 8:52e0506e98b8 | 45 | _x[0] = _x[0] - 1;} |
ziyi11 | 8:52e0506e98b8 | 46 | }; |
ziyi11 | 8:52e0506e98b8 | 47 | printf(" Direction changed\n"); |
ziyi11 | 8:52e0506e98b8 | 48 | switch(d){ |
ziyi11 | 8:52e0506e98b8 | 49 | case N: |
ziyi11 | 8:52e0506e98b8 | 50 | if(_oldDirection !='S') |
ziyi11 | 8:52e0506e98b8 | 51 | { |
ziyi11 | 8:52e0506e98b8 | 52 | _y[0] = _y[0] - 1; |
ziyi11 | 8:52e0506e98b8 | 53 | _oldDirection = 'N'; |
ziyi11 | 8:52e0506e98b8 | 54 | printf("_oldDirection change to North\n"); |
ziyi11 | 8:52e0506e98b8 | 55 | |
ziyi11 | 8:52e0506e98b8 | 56 | } |
ziyi11 | 8:52e0506e98b8 | 57 | break; |
ziyi11 | 8:52e0506e98b8 | 58 | |
ziyi11 | 8:52e0506e98b8 | 59 | case S: |
ziyi11 | 8:52e0506e98b8 | 60 | if(_oldDirection !='N'){ |
ziyi11 | 8:52e0506e98b8 | 61 | _y[0] = _y[0] + 1; |
ziyi11 | 8:52e0506e98b8 | 62 | _oldDirection = 'S'; |
ziyi11 | 8:52e0506e98b8 | 63 | printf("_oldDirection change to South\n"); |
ziyi11 | 8:52e0506e98b8 | 64 | |
ziyi11 | 8:52e0506e98b8 | 65 | } |
ziyi11 | 8:52e0506e98b8 | 66 | break; |
ziyi11 | 8:52e0506e98b8 | 67 | |
ziyi11 | 8:52e0506e98b8 | 68 | case E: |
ziyi11 | 8:52e0506e98b8 | 69 | if(_oldDirection != 'W'){ |
ziyi11 | 8:52e0506e98b8 | 70 | _x[0] = _x[0] + 1; |
ziyi11 | 8:52e0506e98b8 | 71 | _oldDirection = 'E'; |
ziyi11 | 8:52e0506e98b8 | 72 | printf("_oldDirection change to East\n"); |
ziyi11 | 8:52e0506e98b8 | 73 | |
ziyi11 | 8:52e0506e98b8 | 74 | } |
ziyi11 | 8:52e0506e98b8 | 75 | break; |
ziyi11 | 8:52e0506e98b8 | 76 | case W: |
ziyi11 | 8:52e0506e98b8 | 77 | if(_oldDirection != 'E'){ |
ziyi11 | 8:52e0506e98b8 | 78 | _x[0] = _x[0]- 1; |
ziyi11 | 8:52e0506e98b8 | 79 | _oldDirection = 'W'; |
ziyi11 | 8:52e0506e98b8 | 80 | printf("_oldDirection change to West\n"); |
ziyi11 | 8:52e0506e98b8 | 81 | |
ziyi11 | 8:52e0506e98b8 | 82 | }break; |
ziyi11 | 8:52e0506e98b8 | 83 | } |
ziyi11 | 8:52e0506e98b8 | 84 | |
ziyi11 | 8:52e0506e98b8 | 85 | |
ziyi11 | 8:52e0506e98b8 | 86 | } |
ziyi11 | 8:52e0506e98b8 | 87 | |
ziyi11 | 8:52e0506e98b8 | 88 | int Snake::getLength() |
ziyi11 | 8:52e0506e98b8 | 89 | { |
ziyi11 | 8:52e0506e98b8 | 90 | return _length; |
ziyi11 | 8:52e0506e98b8 | 91 | printf("return _length\n"); |
ziyi11 | 8:52e0506e98b8 | 92 | } |
ziyi11 | 8:52e0506e98b8 | 93 | |
ziyi11 | 8:52e0506e98b8 | 94 | void Snake::grow() |
ziyi11 | 8:52e0506e98b8 | 95 | { |
ziyi11 | 8:52e0506e98b8 | 96 | _length =_length + 1; |
ziyi11 | 8:52e0506e98b8 | 97 | printf("length + 1\n"); |
ziyi11 | 8:52e0506e98b8 | 98 | } |
ziyi11 | 8:52e0506e98b8 | 99 | int Snake::getX(int head) |
ziyi11 | 8:52e0506e98b8 | 100 | { |
ziyi11 | 8:52e0506e98b8 | 101 | return _x[head]; |
ziyi11 | 8:52e0506e98b8 | 102 | printf("return _x[head]\n"); |
ziyi11 | 8:52e0506e98b8 | 103 | } |
ziyi11 | 8:52e0506e98b8 | 104 | |
ziyi11 | 8:52e0506e98b8 | 105 | int Snake::getY(int head) |
ziyi11 | 8:52e0506e98b8 | 106 | { |
ziyi11 | 8:52e0506e98b8 | 107 | return _y[head]; |
ziyi11 | 8:52e0506e98b8 | 108 | printf("return _y[head]\n"); |
ziyi11 | 8:52e0506e98b8 | 109 | } |
ziyi11 | 8:52e0506e98b8 | 110 | |
ziyi11 | 8:52e0506e98b8 | 111 | |
ziyi11 | 8:52e0506e98b8 | 112 |