ZIYI CHEN ml17z4c 201214999

Dependencies:   mbed

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?

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