hey

Dependencies:   4DGL-uLCD-SE PinDetect SDFileSystem mbed-rtos mbed wave_player

Fork of 4180_Lab4_v6 by Scott Williams

Committer:
ecardenas8
Date:
Mon Oct 31 20:52:10 2016 +0000
Revision:
2:68c4e1539da5
Parent:
1:abd7e0631db8
hey its frogger

Who changed what in which revision?

UserRevisionLine numberNew contents of line
swilliams346 0:9f1095365b9a 1 //robot
swilliams346 0:9f1095365b9a 2 class Robot
swilliams346 0:9f1095365b9a 3 {
swilliams346 0:9f1095365b9a 4 Mutex stdio_mutex;
swilliams346 1:abd7e0631db8 5 int FrogX;
swilliams346 1:abd7e0631db8 6 int FrogY;
swilliams346 0:9f1095365b9a 7 public:
swilliams346 0:9f1095365b9a 8 void drawFrog() {
swilliams346 0:9f1095365b9a 9 uLCD.filled_rectangle(XPosition-5,YPosition-5,XPosition+5,YPosition+5,RED);
swilliams346 0:9f1095365b9a 10 }
swilliams346 0:9f1095365b9a 11
swilliams346 1:abd7e0631db8 12 void drawDeadFrog() {
swilliams346 1:abd7e0631db8 13 uLCD.filled_rectangle(XPosition-5,YPosition-5,XPosition+5,YPosition+5,WHITE);
swilliams346 1:abd7e0631db8 14 }
swilliams346 1:abd7e0631db8 15
swilliams346 0:9f1095365b9a 16 void drawOutline() {
swilliams346 0:9f1095365b9a 17 uLCD.line(0, 0 , 0, 127, BLACK);
swilliams346 0:9f1095365b9a 18 uLCD.line(0, 0 , 127, 0, BLACK);
swilliams346 0:9f1095365b9a 19 uLCD.line(127, 127 , 0, 127, BLACK);
swilliams346 0:9f1095365b9a 20 uLCD.line(127, 127 , 127, 0, BLACK);
swilliams346 0:9f1095365b9a 21 }
swilliams346 0:9f1095365b9a 22
swilliams346 0:9f1095365b9a 23 void drawGrass(int Xp,int Yp) {
swilliams346 0:9f1095365b9a 24 uLCD.filled_rectangle(Xp-10,Yp-10,Xp+10,Yp+10,GREEN);
swilliams346 0:9f1095365b9a 25 }
swilliams346 0:9f1095365b9a 26
swilliams346 0:9f1095365b9a 27 void drawBar(int Xp,int Yp) {
swilliams346 0:9f1095365b9a 28 uLCD.filled_rectangle(Xp-10,Yp-10,Xp+10,Yp+10,BLACK);
swilliams346 0:9f1095365b9a 29 }
swilliams346 0:9f1095365b9a 30
swilliams346 0:9f1095365b9a 31 void drawRoad(int Xp,int Yp) {
swilliams346 0:9f1095365b9a 32 uLCD.filled_rectangle(Xp-10,Yp-10,Xp+10,Yp+10,BLACK);
swilliams346 0:9f1095365b9a 33 uLCD.filled_rectangle(Xp-2,Yp-1,Xp+2,Yp+1,WHITE);
swilliams346 0:9f1095365b9a 34 }
swilliams346 0:9f1095365b9a 35
swilliams346 1:abd7e0631db8 36 void drawCar1(int Position1, int CarWidth) {
swilliams346 1:abd7e0631db8 37 //stdio_mutex.lock();
swilliams346 1:abd7e0631db8 38 uLCD.filled_rectangle(Position1-CarWidth,95-4,Position1+CarWidth,95+4,BLUE);
swilliams346 1:abd7e0631db8 39 //stdio_mutex.unlock();
swilliams346 1:abd7e0631db8 40 }
swilliams346 1:abd7e0631db8 41
swilliams346 1:abd7e0631db8 42 void drawCar2(int Position2, int CarWidth) {
swilliams346 1:abd7e0631db8 43 //stdio_mutex.lock();
swilliams346 1:abd7e0631db8 44 uLCD.filled_rectangle(Position2-CarWidth,52-4,Position2+CarWidth,52+4,RED);
swilliams346 1:abd7e0631db8 45 //stdio_mutex.unlock();
swilliams346 0:9f1095365b9a 46 }
swilliams346 0:9f1095365b9a 47
swilliams346 0:9f1095365b9a 48 void drawWater(int Xp,int Yp) {
swilliams346 0:9f1095365b9a 49 uLCD.filled_rectangle(Xp-10,Yp-10,Xp+10,Yp+10,BLUE);
swilliams346 0:9f1095365b9a 50 if(Xp == 11 || Xp == 53 || Xp == 95){
swilliams346 0:9f1095365b9a 51 uLCD.filled_rectangle(Xp-6,Yp-6,Xp+6,Yp+6,GREEN);
swilliams346 0:9f1095365b9a 52 }
swilliams346 0:9f1095365b9a 53 }
swilliams346 0:9f1095365b9a 54
swilliams346 0:9f1095365b9a 55 void drawDrown1() {
swilliams346 0:9f1095365b9a 56 uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE);
swilliams346 0:9f1095365b9a 57 uLCD.filled_rectangle(XPosition-4,YPosition-4,XPosition+4,YPosition+4,RED);
swilliams346 0:9f1095365b9a 58 uLCD.circle(XPosition, YPosition , 2, WHITE);
swilliams346 0:9f1095365b9a 59 }
swilliams346 0:9f1095365b9a 60 void drawDrown2() {
swilliams346 0:9f1095365b9a 61 uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE);
swilliams346 0:9f1095365b9a 62 uLCD.filled_rectangle(XPosition-3,YPosition-3,XPosition+3,YPosition+3,RED);
swilliams346 0:9f1095365b9a 63 uLCD.circle(XPosition, YPosition, 3, WHITE);
swilliams346 0:9f1095365b9a 64 }
swilliams346 0:9f1095365b9a 65 void drawDrown3() {
swilliams346 0:9f1095365b9a 66 uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE);
swilliams346 0:9f1095365b9a 67 uLCD.filled_rectangle(XPosition-1,YPosition-1,XPosition+1,YPosition+1,RED);
swilliams346 0:9f1095365b9a 68 uLCD.circle(XPosition, YPosition, 4 , WHITE);
swilliams346 0:9f1095365b9a 69 }
swilliams346 0:9f1095365b9a 70 void drawDrown4() {
swilliams346 0:9f1095365b9a 71 uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE);
swilliams346 0:9f1095365b9a 72 uLCD.circle(XPosition, YPosition, 5 , WHITE);
swilliams346 0:9f1095365b9a 73 uLCD.circle(XPosition, YPosition, 2 , WHITE);
swilliams346 0:9f1095365b9a 74 }
swilliams346 0:9f1095365b9a 75 void drawDrown5() {
swilliams346 0:9f1095365b9a 76 uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE);
swilliams346 0:9f1095365b9a 77 }
swilliams346 0:9f1095365b9a 78
swilliams346 0:9f1095365b9a 79 void drawHelper(int Xp,int Yp) {
swilliams346 0:9f1095365b9a 80 if(Yp == 11) {
swilliams346 0:9f1095365b9a 81 drawBar(Xp,Yp); //Row 1
swilliams346 0:9f1095365b9a 82 }
swilliams346 0:9f1095365b9a 83 if(Yp == 32){
swilliams346 0:9f1095365b9a 84 drawGrass(Xp,Yp); //Row 2
swilliams346 0:9f1095365b9a 85 }
swilliams346 0:9f1095365b9a 86 if(Yp == 53){
swilliams346 0:9f1095365b9a 87 drawRoad(Xp,Yp); //Row 3
swilliams346 0:9f1095365b9a 88 }
swilliams346 0:9f1095365b9a 89 if(Yp == 74){
swilliams346 0:9f1095365b9a 90 drawWater(Xp,Yp); //Row 4
swilliams346 0:9f1095365b9a 91 }
swilliams346 0:9f1095365b9a 92 if(Yp == 95){
swilliams346 0:9f1095365b9a 93 drawRoad(Xp,Yp); //Row 5
swilliams346 0:9f1095365b9a 94 }
swilliams346 0:9f1095365b9a 95 if(Yp == 116){
swilliams346 0:9f1095365b9a 96 drawGrass(Xp,Yp); //Row 6
swilliams346 0:9f1095365b9a 97 }
swilliams346 0:9f1095365b9a 98 }
swilliams346 0:9f1095365b9a 99
swilliams346 0:9f1095365b9a 100 void drawEraser() {
swilliams346 0:9f1095365b9a 101 drawHelper(XPosition,YPosition);
swilliams346 0:9f1095365b9a 102 }
swilliams346 0:9f1095365b9a 103
swilliams346 0:9f1095365b9a 104 void moveForward() {
swilliams346 1:abd7e0631db8 105 drawHelper(XPosition,YPosition);
swilliams346 1:abd7e0631db8 106 setYPosition(getYPosition() - 21);
swilliams346 1:abd7e0631db8 107 drawFrog();
swilliams346 0:9f1095365b9a 108 }
swilliams346 0:9f1095365b9a 109 void moveBackward() {
swilliams346 1:abd7e0631db8 110 FrogY = getYPosition();
swilliams346 1:abd7e0631db8 111 if(FrogY > 11){
swilliams346 1:abd7e0631db8 112 drawHelper(XPosition,YPosition);
swilliams346 1:abd7e0631db8 113 setYPosition(FrogY + 21);
swilliams346 1:abd7e0631db8 114 drawFrog();
swilliams346 1:abd7e0631db8 115 }
swilliams346 0:9f1095365b9a 116 }
swilliams346 0:9f1095365b9a 117 void moveLeft() {
swilliams346 1:abd7e0631db8 118 FrogX = getXPosition();
swilliams346 1:abd7e0631db8 119 if(FrogX > 11){
swilliams346 1:abd7e0631db8 120 drawHelper(XPosition,YPosition);
swilliams346 1:abd7e0631db8 121 setXPosition(FrogX - 21);
swilliams346 1:abd7e0631db8 122 drawFrog();
swilliams346 1:abd7e0631db8 123 }
swilliams346 0:9f1095365b9a 124 }
swilliams346 0:9f1095365b9a 125 void moveRight() {
swilliams346 1:abd7e0631db8 126 FrogX = getXPosition();
swilliams346 1:abd7e0631db8 127 if(FrogX < 116){
swilliams346 1:abd7e0631db8 128 drawHelper(XPosition,YPosition);
swilliams346 1:abd7e0631db8 129 setXPosition(FrogX + 21);
swilliams346 1:abd7e0631db8 130 drawFrog();
swilliams346 1:abd7e0631db8 131 }
swilliams346 0:9f1095365b9a 132 }
swilliams346 0:9f1095365b9a 133
swilliams346 0:9f1095365b9a 134 int getXPosition() {
swilliams346 0:9f1095365b9a 135 return XPosition;
swilliams346 0:9f1095365b9a 136 }
swilliams346 0:9f1095365b9a 137 int getYPosition() {
swilliams346 0:9f1095365b9a 138 return YPosition;
swilliams346 0:9f1095365b9a 139 }
swilliams346 0:9f1095365b9a 140
swilliams346 0:9f1095365b9a 141 void setXPosition(int x) {
swilliams346 0:9f1095365b9a 142 XPosition=x;
swilliams346 0:9f1095365b9a 143 }
swilliams346 0:9f1095365b9a 144 void setYPosition(int y) {
swilliams346 0:9f1095365b9a 145 YPosition=y;
swilliams346 0:9f1095365b9a 146 }
swilliams346 0:9f1095365b9a 147
swilliams346 0:9f1095365b9a 148 Robot()
swilliams346 0:9f1095365b9a 149 {
swilliams346 1:abd7e0631db8 150 XPosition = 53;
swilliams346 0:9f1095365b9a 151 YPosition = 116;
swilliams346 0:9f1095365b9a 152 }
swilliams346 0:9f1095365b9a 153 private:
swilliams346 0:9f1095365b9a 154
swilliams346 0:9f1095365b9a 155 int XPosition;
swilliams346 0:9f1095365b9a 156 int YPosition;
swilliams346 0:9f1095365b9a 157 };