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.
Snek/Snek.cpp@4:6353f829c56c, 2018-04-29 (annotated)
- Committer:
- Andrew_M
- Date:
- Sun Apr 29 14:59:14 2018 +0000
- Revision:
- 4:6353f829c56c
- Parent:
- 3:6253a2d374fa
- Child:
- 5:a3a9e0417e04
Snake now has a tail that follows it, max length 100
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Andrew_M | 1:a14415de3ad5 | 1 | #include "Snek.h" |
Andrew_M | 1:a14415de3ad5 | 2 | |
Andrew_M | 1:a14415de3ad5 | 3 | // nothing doing in the constructor and destructor |
Andrew_M | 1:a14415de3ad5 | 4 | Snek::Snek() |
Andrew_M | 1:a14415de3ad5 | 5 | { |
Andrew_M | 1:a14415de3ad5 | 6 | |
Andrew_M | 1:a14415de3ad5 | 7 | } |
Andrew_M | 1:a14415de3ad5 | 8 | |
Andrew_M | 1:a14415de3ad5 | 9 | Snek::~Snek() |
Andrew_M | 1:a14415de3ad5 | 10 | { |
Andrew_M | 1:a14415de3ad5 | 11 | |
Andrew_M | 1:a14415de3ad5 | 12 | } |
Andrew_M | 1:a14415de3ad5 | 13 | |
Andrew_M | 2:9ca5e1c221c3 | 14 | void Snek::init(int x, int y) |
Andrew_M | 1:a14415de3ad5 | 15 | { |
Andrew_M | 1:a14415de3ad5 | 16 | //Inital values for variables |
Andrew_M | 3:6253a2d374fa | 17 | printf ("floats: %i %i \n", _x, _y); |
Andrew_M | 4:6353f829c56c | 18 | _length = 3; |
Andrew_M | 4:6353f829c56c | 19 | |
Andrew_M | 4:6353f829c56c | 20 | for (int i = 0; i < _length; i++) { |
Andrew_M | 4:6353f829c56c | 21 | _x[i] = x; |
Andrew_M | 4:6353f829c56c | 22 | _y[i] = y; |
Andrew_M | 4:6353f829c56c | 23 | } |
Andrew_M | 1:a14415de3ad5 | 24 | } |
Andrew_M | 1:a14415de3ad5 | 25 | |
Andrew_M | 2:9ca5e1c221c3 | 26 | void Snek::update(Direction d) |
Andrew_M | 2:9ca5e1c221c3 | 27 | { |
Andrew_M | 3:6253a2d374fa | 28 | if (d == N) { |
Andrew_M | 4:6353f829c56c | 29 | _y[0] -= 1; |
Andrew_M | 3:6253a2d374fa | 30 | _oldDirection = 'N'; |
Andrew_M | 3:6253a2d374fa | 31 | } else if (d == S) { |
Andrew_M | 4:6353f829c56c | 32 | _y[0] += 1; |
Andrew_M | 3:6253a2d374fa | 33 | _oldDirection = 'S'; |
Andrew_M | 3:6253a2d374fa | 34 | } else if (d == E) { |
Andrew_M | 4:6353f829c56c | 35 | _x[0] += 1; |
Andrew_M | 3:6253a2d374fa | 36 | _oldDirection = 'E'; |
Andrew_M | 3:6253a2d374fa | 37 | } else if (d == W) { |
Andrew_M | 4:6353f829c56c | 38 | _x[0] -= 1; |
Andrew_M | 3:6253a2d374fa | 39 | _oldDirection = 'W'; |
Andrew_M | 3:6253a2d374fa | 40 | } else { |
Andrew_M | 3:6253a2d374fa | 41 | if (_oldDirection == 'N') { |
Andrew_M | 4:6353f829c56c | 42 | _y[0] -= 1; |
Andrew_M | 3:6253a2d374fa | 43 | } else if (_oldDirection == 'S') { |
Andrew_M | 4:6353f829c56c | 44 | _y[0] += 1; |
Andrew_M | 3:6253a2d374fa | 45 | } else if (_oldDirection == 'E') { |
Andrew_M | 4:6353f829c56c | 46 | _x[0] += 1; |
Andrew_M | 3:6253a2d374fa | 47 | } else if (_oldDirection == 'W') { |
Andrew_M | 4:6353f829c56c | 48 | _x[0] -= 1; |
Andrew_M | 3:6253a2d374fa | 49 | } |
Andrew_M | 3:6253a2d374fa | 50 | } |
Andrew_M | 4:6353f829c56c | 51 | |
Andrew_M | 4:6353f829c56c | 52 | for (int i = _length; i >= 1; i--) { |
Andrew_M | 4:6353f829c56c | 53 | _x[i] = _x[i-1]; |
Andrew_M | 4:6353f829c56c | 54 | _y[i] = _y[i-1]; |
Andrew_M | 4:6353f829c56c | 55 | } |
Andrew_M | 2:9ca5e1c221c3 | 56 | } |
Andrew_M | 2:9ca5e1c221c3 | 57 | |
Andrew_M | 4:6353f829c56c | 58 | int Snek::getX(int ref) |
Andrew_M | 1:a14415de3ad5 | 59 | { |
Andrew_M | 4:6353f829c56c | 60 | return _x[ref]; |
Andrew_M | 2:9ca5e1c221c3 | 61 | } |
Andrew_M | 1:a14415de3ad5 | 62 | |
Andrew_M | 4:6353f829c56c | 63 | int Snek::getY(int ref) |
Andrew_M | 2:9ca5e1c221c3 | 64 | { |
Andrew_M | 4:6353f829c56c | 65 | return _y[ref]; |
Andrew_M | 2:9ca5e1c221c3 | 66 | } |
Andrew_M | 4:6353f829c56c | 67 | |
Andrew_M | 4:6353f829c56c | 68 | int Snek::getLength() |
Andrew_M | 4:6353f829c56c | 69 | { |
Andrew_M | 4:6353f829c56c | 70 | return _length; |
Andrew_M | 4:6353f829c56c | 71 | } |