IoT Challenge 1
test.txt@15:138fa7c00834, 2019-02-11 (annotated)
- Committer:
- schizzlewizzle
- Date:
- Mon Feb 11 11:34:34 2019 +0000
- Revision:
- 15:138fa7c00834
v2
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
schizzlewizzle | 15:138fa7c00834 | 1 | #include "MicroBit.h" |
schizzlewizzle | 15:138fa7c00834 | 2 | |
schizzlewizzle | 15:138fa7c00834 | 3 | int pLocationX; |
schizzlewizzle | 15:138fa7c00834 | 4 | int pLocationY; |
schizzlewizzle | 15:138fa7c00834 | 5 | int xPos = 2; |
schizzlewizzle | 15:138fa7c00834 | 6 | bool gameOver = false; |
schizzlewizzle | 15:138fa7c00834 | 7 | int y; |
schizzlewizzle | 15:138fa7c00834 | 8 | int obstacleX; |
schizzlewizzle | 15:138fa7c00834 | 9 | int score = 0; |
schizzlewizzle | 15:138fa7c00834 | 10 | int playX; |
schizzlewizzle | 15:138fa7c00834 | 11 | int direction = 0; |
schizzlewizzle | 15:138fa7c00834 | 12 | MicroBit uBit; |
schizzlewizzle | 15:138fa7c00834 | 13 | |
schizzlewizzle | 15:138fa7c00834 | 14 | void getXPos(){ |
schizzlewizzle | 15:138fa7c00834 | 15 | playX = uBit.accelerometer.getX(); |
schizzlewizzle | 15:138fa7c00834 | 16 | if(playX > 250){ |
schizzlewizzle | 15:138fa7c00834 | 17 | xPos++; |
schizzlewizzle | 15:138fa7c00834 | 18 | direction = 1; |
schizzlewizzle | 15:138fa7c00834 | 19 | }else if (playX < -250) { |
schizzlewizzle | 15:138fa7c00834 | 20 | xPos--; |
schizzlewizzle | 15:138fa7c00834 | 21 | direction = 0; |
schizzlewizzle | 15:138fa7c00834 | 22 | } |
schizzlewizzle | 15:138fa7c00834 | 23 | |
schizzlewizzle | 15:138fa7c00834 | 24 | } |
schizzlewizzle | 15:138fa7c00834 | 25 | |
schizzlewizzle | 15:138fa7c00834 | 26 | void checkCollision(){ |
schizzlewizzle | 15:138fa7c00834 | 27 | if (xPos == obstacleX || xPos == obstacleX - 1 && y == 4){ |
schizzlewizzle | 15:138fa7c00834 | 28 | gameOver = true; |
schizzlewizzle | 15:138fa7c00834 | 29 | }else{ |
schizzlewizzle | 15:138fa7c00834 | 30 | |
schizzlewizzle | 15:138fa7c00834 | 31 | gameOver = false; |
schizzlewizzle | 15:138fa7c00834 | 32 | } |
schizzlewizzle | 15:138fa7c00834 | 33 | |
schizzlewizzle | 15:138fa7c00834 | 34 | } |
schizzlewizzle | 15:138fa7c00834 | 35 | void displayPlayerLocation(){ |
schizzlewizzle | 15:138fa7c00834 | 36 | getXPos(); |
schizzlewizzle | 15:138fa7c00834 | 37 | if (xPos < 0){ |
schizzlewizzle | 15:138fa7c00834 | 38 | xPos = 0; |
schizzlewizzle | 15:138fa7c00834 | 39 | } else if(xPos > 4) { |
schizzlewizzle | 15:138fa7c00834 | 40 | xPos = 4; |
schizzlewizzle | 15:138fa7c00834 | 41 | } |
schizzlewizzle | 15:138fa7c00834 | 42 | if(direction == 1) { |
schizzlewizzle | 15:138fa7c00834 | 43 | uBit.display.image.setPixelValue(xPos - 1, 4, 0); |
schizzlewizzle | 15:138fa7c00834 | 44 | } else if(direction == 0) { |
schizzlewizzle | 15:138fa7c00834 | 45 | uBit.display.image.setPixelValue(xPos + 1, 4, 0); |
schizzlewizzle | 15:138fa7c00834 | 46 | } |
schizzlewizzle | 15:138fa7c00834 | 47 | |
schizzlewizzle | 15:138fa7c00834 | 48 | checkCollision(); |
schizzlewizzle | 15:138fa7c00834 | 49 | uBit.display.image.setPixelValue(xPos, 4, 255); |
schizzlewizzle | 15:138fa7c00834 | 50 | } |
schizzlewizzle | 15:138fa7c00834 | 51 | void displayObs(){ |
schizzlewizzle | 15:138fa7c00834 | 52 | uBit.display.image.setPixelValue(obstacleX, y, 0); |
schizzlewizzle | 15:138fa7c00834 | 53 | obstacleX = uBit.random(5); |
schizzlewizzle | 15:138fa7c00834 | 54 | |
schizzlewizzle | 15:138fa7c00834 | 55 | for (y = 0; y < 5; y++){ // descends the obstacles based on y value |
schizzlewizzle | 15:138fa7c00834 | 56 | uBit.display.image.setPixelValue(obstacleX, y, 255); |
schizzlewizzle | 15:138fa7c00834 | 57 | if (obstacleX > 0) |
schizzlewizzle | 15:138fa7c00834 | 58 | { |
schizzlewizzle | 15:138fa7c00834 | 59 | uBit.display.image.setPixelValue(obstacleX - 1, y, 255); |
schizzlewizzle | 15:138fa7c00834 | 60 | } |
schizzlewizzle | 15:138fa7c00834 | 61 | if (y > 0) |
schizzlewizzle | 15:138fa7c00834 | 62 | { |
schizzlewizzle | 15:138fa7c00834 | 63 | uBit.display.image.setPixelValue(obstacleX, y - 1, 0); |
schizzlewizzle | 15:138fa7c00834 | 64 | } |
schizzlewizzle | 15:138fa7c00834 | 65 | if (obstacleX > 0 && y > 0) |
schizzlewizzle | 15:138fa7c00834 | 66 | { |
schizzlewizzle | 15:138fa7c00834 | 67 | uBit.display.image.setPixelValue(obstacleX - 1, y - 1, 0); |
schizzlewizzle | 15:138fa7c00834 | 68 | } |
schizzlewizzle | 15:138fa7c00834 | 69 | if (score > 0) |
schizzlewizzle | 15:138fa7c00834 | 70 | { |
schizzlewizzle | 15:138fa7c00834 | 71 | uBit.sleep(500 - score); |
schizzlewizzle | 15:138fa7c00834 | 72 | }else if (score >= 500) |
schizzlewizzle | 15:138fa7c00834 | 73 | { |
schizzlewizzle | 15:138fa7c00834 | 74 | uBit.sleep(0); |
schizzlewizzle | 15:138fa7c00834 | 75 | }else{ |
schizzlewizzle | 15:138fa7c00834 | 76 | uBit.sleep(500); |
schizzlewizzle | 15:138fa7c00834 | 77 | } |
schizzlewizzle | 15:138fa7c00834 | 78 | checkCollision(); |
schizzlewizzle | 15:138fa7c00834 | 79 | displayPlayerLocation(); |
schizzlewizzle | 15:138fa7c00834 | 80 | } |
schizzlewizzle | 15:138fa7c00834 | 81 | y = 4; |
schizzlewizzle | 15:138fa7c00834 | 82 | uBit.display.image.setPixelValue(obstacleX, y, 0); |
schizzlewizzle | 15:138fa7c00834 | 83 | uBit.display.image.setPixelValue(obstacleX - 1, y, 0); |
schizzlewizzle | 15:138fa7c00834 | 84 | score += 5; |
schizzlewizzle | 15:138fa7c00834 | 85 | } |
schizzlewizzle | 15:138fa7c00834 | 86 | |
schizzlewizzle | 15:138fa7c00834 | 87 | |
schizzlewizzle | 15:138fa7c00834 | 88 | |
schizzlewizzle | 15:138fa7c00834 | 89 | |
schizzlewizzle | 15:138fa7c00834 | 90 | int main(){ |
schizzlewizzle | 15:138fa7c00834 | 91 | uBit.init(); |
schizzlewizzle | 15:138fa7c00834 | 92 | while(gameOver == false){ |
schizzlewizzle | 15:138fa7c00834 | 93 | displayObs(); |
schizzlewizzle | 15:138fa7c00834 | 94 | } |
schizzlewizzle | 15:138fa7c00834 | 95 | uBit.display.scroll("Game Over, Score: "); |
schizzlewizzle | 15:138fa7c00834 | 96 | uBit.display.scroll(score); |
schizzlewizzle | 15:138fa7c00834 | 97 | } |
schizzlewizzle | 15:138fa7c00834 | 98 | |
schizzlewizzle | 15:138fa7c00834 | 99 | |
schizzlewizzle | 15:138fa7c00834 | 100 |