ZIYI CHEN ml17z4c 201214999

Dependencies:   mbed

Committer:
ziyi11
Date:
Thu May 09 14:36:47 2019 +0000
Revision:
13:08bdb4cffacd
try;

Who changed what in which revision?

UserRevisionLine numberNew 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