ZIYI CHEN ml17z4c 201214999
Dependencies: mbed
Game/Game.cpp@13:08bdb4cffacd, 2019-05-09 (annotated)
- Committer:
- ziyi11
- Date:
- Thu May 09 14:36:47 2019 +0000
- Revision:
- 13:08bdb4cffacd
try;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ziyi11 | 13:08bdb4cffacd | 1 | #include "Game.h" |
ziyi11 | 13:08bdb4cffacd | 2 | |
ziyi11 | 13:08bdb4cffacd | 3 | |
ziyi11 | 13:08bdb4cffacd | 4 | Game::Game() |
ziyi11 | 13:08bdb4cffacd | 5 | { |
ziyi11 | 13:08bdb4cffacd | 6 | |
ziyi11 | 13:08bdb4cffacd | 7 | } |
ziyi11 | 13:08bdb4cffacd | 8 | |
ziyi11 | 13:08bdb4cffacd | 9 | Game::~Game() |
ziyi11 | 13:08bdb4cffacd | 10 | { |
ziyi11 | 13:08bdb4cffacd | 11 | |
ziyi11 | 13:08bdb4cffacd | 12 | } |
ziyi11 | 13:08bdb4cffacd | 13 | |
ziyi11 | 13:08bdb4cffacd | 14 | void Game::init(int x, int y) |
ziyi11 | 13:08bdb4cffacd | 15 | { |
ziyi11 | 13:08bdb4cffacd | 16 | memset(_x, 0, sizeof(_x)); |
ziyi11 | 13:08bdb4cffacd | 17 | memset(_y, 0, sizeof(_y)); |
ziyi11 | 13:08bdb4cffacd | 18 | |
ziyi11 | 13:08bdb4cffacd | 19 | _length = 5; |
ziyi11 | 13:08bdb4cffacd | 20 | |
ziyi11 | 13:08bdb4cffacd | 21 | Previous_direction = 'N'; |
ziyi11 | 13:08bdb4cffacd | 22 | |
ziyi11 | 13:08bdb4cffacd | 23 | for (int i = 0; i < _length; i++) { |
ziyi11 | 13:08bdb4cffacd | 24 | _x[i] = x; |
ziyi11 | 13:08bdb4cffacd | 25 | _y[i] = y + i; |
ziyi11 | 13:08bdb4cffacd | 26 | } |
ziyi11 | 13:08bdb4cffacd | 27 | |
ziyi11 | 13:08bdb4cffacd | 28 | } |
ziyi11 | 13:08bdb4cffacd | 29 | |
ziyi11 | 13:08bdb4cffacd | 30 | void Game::update(Direction d) |
ziyi11 | 13:08bdb4cffacd | 31 | { |
ziyi11 | 13:08bdb4cffacd | 32 | |
ziyi11 | 13:08bdb4cffacd | 33 | for (int i = _length-1; i >= 1; i--) { |
ziyi11 | 13:08bdb4cffacd | 34 | _x[i] = _x[i-1]; |
ziyi11 | 13:08bdb4cffacd | 35 | _y[i] = _y[i-1]; |
ziyi11 | 13:08bdb4cffacd | 36 | } |
ziyi11 | 13:08bdb4cffacd | 37 | |
ziyi11 | 13:08bdb4cffacd | 38 | |
ziyi11 | 13:08bdb4cffacd | 39 | switch(d) { |
ziyi11 | 13:08bdb4cffacd | 40 | case N: |
ziyi11 | 13:08bdb4cffacd | 41 | if(Previous_direction !='S') { |
ziyi11 | 13:08bdb4cffacd | 42 | _y[0] = _y[0] - 1; |
ziyi11 | 13:08bdb4cffacd | 43 | Previous_direction = 'N'; |
ziyi11 | 13:08bdb4cffacd | 44 | } |
ziyi11 | 13:08bdb4cffacd | 45 | break; |
ziyi11 | 13:08bdb4cffacd | 46 | |
ziyi11 | 13:08bdb4cffacd | 47 | case S: |
ziyi11 | 13:08bdb4cffacd | 48 | if(Previous_direction !='N') { |
ziyi11 | 13:08bdb4cffacd | 49 | _y[0] = _y[0] + 1; |
ziyi11 | 13:08bdb4cffacd | 50 | Previous_direction = 'S'; |
ziyi11 | 13:08bdb4cffacd | 51 | } |
ziyi11 | 13:08bdb4cffacd | 52 | break; |
ziyi11 | 13:08bdb4cffacd | 53 | |
ziyi11 | 13:08bdb4cffacd | 54 | case E: |
ziyi11 | 13:08bdb4cffacd | 55 | if(Previous_direction != 'W') { |
ziyi11 | 13:08bdb4cffacd | 56 | _x[0] = _x[0] + 1; |
ziyi11 | 13:08bdb4cffacd | 57 | Previous_direction = 'E'; |
ziyi11 | 13:08bdb4cffacd | 58 | } |
ziyi11 | 13:08bdb4cffacd | 59 | break; |
ziyi11 | 13:08bdb4cffacd | 60 | case W: |
ziyi11 | 13:08bdb4cffacd | 61 | if(Previous_direction != 'E') { |
ziyi11 | 13:08bdb4cffacd | 62 | _x[0] = _x[0]- 1; |
ziyi11 | 13:08bdb4cffacd | 63 | Previous_direction = 'W'; |
ziyi11 | 13:08bdb4cffacd | 64 | } |
ziyi11 | 13:08bdb4cffacd | 65 | break; |
ziyi11 | 13:08bdb4cffacd | 66 | } |
ziyi11 | 13:08bdb4cffacd | 67 | if (Previous_direction == 'N') { |
ziyi11 | 13:08bdb4cffacd | 68 | _y[0] = _y[0] - 1; |
ziyi11 | 13:08bdb4cffacd | 69 | } else if (Previous_direction == 'S') { |
ziyi11 | 13:08bdb4cffacd | 70 | _y[0] = _y[0] + 1; |
ziyi11 | 13:08bdb4cffacd | 71 | } else if (Previous_direction == 'E') { |
ziyi11 | 13:08bdb4cffacd | 72 | _x[0] = _x[0] + 1; |
ziyi11 | 13:08bdb4cffacd | 73 | } else if (Previous_direction == 'W') { |
ziyi11 | 13:08bdb4cffacd | 74 | _x[0] = _x[0] - 1; |
ziyi11 | 13:08bdb4cffacd | 75 | } |
ziyi11 | 13:08bdb4cffacd | 76 | } |
ziyi11 | 13:08bdb4cffacd | 77 | |
ziyi11 | 13:08bdb4cffacd | 78 | int Game::getLength() |
ziyi11 | 13:08bdb4cffacd | 79 | { |
ziyi11 | 13:08bdb4cffacd | 80 | return _length; |
ziyi11 | 13:08bdb4cffacd | 81 | } |
ziyi11 | 13:08bdb4cffacd | 82 | |
ziyi11 | 13:08bdb4cffacd | 83 | void Game::grow() |
ziyi11 | 13:08bdb4cffacd | 84 | { |
ziyi11 | 13:08bdb4cffacd | 85 | _length =_length + 1; |
ziyi11 | 13:08bdb4cffacd | 86 | printf("length + 1\n"); |
ziyi11 | 13:08bdb4cffacd | 87 | } |
ziyi11 | 13:08bdb4cffacd | 88 | |
ziyi11 | 13:08bdb4cffacd | 89 | int Game::xcoordinate(int now) |
ziyi11 | 13:08bdb4cffacd | 90 | { |
ziyi11 | 13:08bdb4cffacd | 91 | return _x[now]; |
ziyi11 | 13:08bdb4cffacd | 92 | } |
ziyi11 | 13:08bdb4cffacd | 93 | |
ziyi11 | 13:08bdb4cffacd | 94 | int Game::ycoordinate(int now) |
ziyi11 | 13:08bdb4cffacd | 95 | { |
ziyi11 | 13:08bdb4cffacd | 96 | return _y[now]; |
ziyi11 | 13:08bdb4cffacd | 97 | } |
ziyi11 | 13:08bdb4cffacd | 98 | |
ziyi11 | 13:08bdb4cffacd | 99 | |
ziyi11 | 13:08bdb4cffacd | 100 |