Frogger for mbed

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

Fork of 4180_Lab4_v6 by Erick Cardenas

Revision:
0:9f1095365b9a
Child:
1:abd7e0631db8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Robot.h	Sat Oct 29 22:15:03 2016 +0000
@@ -0,0 +1,128 @@
+//robot
+class Robot
+{
+    Mutex stdio_mutex;
+public:
+    void drawFrog() {
+    uLCD.filled_rectangle(XPosition-5,YPosition-5,XPosition+5,YPosition+5,RED);
+    }
+    
+    void drawOutline() {
+    uLCD.line(0, 0 , 0, 127, BLACK);
+    uLCD.line(0, 0 , 127, 0, BLACK);
+    uLCD.line(127, 127 , 0, 127, BLACK);
+    uLCD.line(127, 127 , 127, 0, BLACK);
+    }
+    
+    void drawGrass(int Xp,int Yp) {
+    uLCD.filled_rectangle(Xp-10,Yp-10,Xp+10,Yp+10,GREEN);
+    }
+    
+    void drawBar(int Xp,int Yp) {
+    uLCD.filled_rectangle(Xp-10,Yp-10,Xp+10,Yp+10,BLACK);
+    }
+    
+    void drawRoad(int Xp,int Yp) {
+    uLCD.filled_rectangle(Xp-10,Yp-10,Xp+10,Yp+10,BLACK);
+    uLCD.filled_rectangle(Xp-2,Yp-1,Xp+2,Yp+1,WHITE);
+    }
+    
+    void drawCar1(int Position1) {
+    stdio_mutex.lock();
+    uLCD.filled_rectangle(Position1-10,95-4,Position1+10,95+4,BLUE);
+    stdio_mutex.unlock();
+    }
+    
+    void drawWater(int Xp,int Yp) {
+    uLCD.filled_rectangle(Xp-10,Yp-10,Xp+10,Yp+10,BLUE);
+        if(Xp == 11 || Xp == 53 || Xp == 95){
+            uLCD.filled_rectangle(Xp-6,Yp-6,Xp+6,Yp+6,GREEN);
+        }
+    }
+    
+    void drawDrown1() {
+    uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE);
+    uLCD.filled_rectangle(XPosition-4,YPosition-4,XPosition+4,YPosition+4,RED);
+    uLCD.circle(XPosition, YPosition , 2, WHITE);
+    }
+    void drawDrown2() {
+    uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE);
+    uLCD.filled_rectangle(XPosition-3,YPosition-3,XPosition+3,YPosition+3,RED);
+    uLCD.circle(XPosition, YPosition, 3, WHITE);
+    }
+    void drawDrown3() {
+    uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE);
+    uLCD.filled_rectangle(XPosition-1,YPosition-1,XPosition+1,YPosition+1,RED);
+    uLCD.circle(XPosition, YPosition, 4 , WHITE);
+    }
+    void drawDrown4() {
+    uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE);
+    uLCD.circle(XPosition, YPosition, 5 , WHITE);
+    uLCD.circle(XPosition, YPosition, 2 , WHITE);
+    }
+    void drawDrown5() {
+    uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE);
+    }
+    
+    void drawHelper(int Xp,int Yp) {
+        if(Yp == 11) {
+            drawBar(Xp,Yp);   //Row 1
+            }
+        if(Yp == 32){
+            drawGrass(Xp,Yp); //Row 2
+            }
+        if(Yp == 53){
+            drawRoad(Xp,Yp);  //Row 3
+            }
+        if(Yp == 74){
+            drawWater(Xp,Yp); //Row 4
+            }
+        if(Yp == 95){   
+            drawRoad(Xp,Yp);  //Row 5
+            }
+        if(Yp == 116){
+            drawGrass(Xp,Yp); //Row 6
+            }
+    }
+    
+    void drawEraser() {
+        drawHelper(XPosition,YPosition);
+    }
+    
+    void moveForward() {
+    setYPosition(getYPosition() - 21);
+    }
+    void moveBackward() {
+    setYPosition(getYPosition() + 21);
+    }
+    void moveLeft() {
+    setXPosition(getXPosition() - 21);
+    }
+    void moveRight() {
+    setXPosition(getXPosition() + 21);
+    }
+    
+    int getXPosition() {
+        return XPosition;
+        }
+    int getYPosition() {
+        return YPosition;
+        }
+        
+    void setXPosition(int x) {
+        XPosition=x;
+        }
+    void setYPosition(int y) {
+        YPosition=y;
+        }
+    
+    Robot() 
+    {
+    XPosition = 74;
+    YPosition = 116;
+    }
+private:
+    
+    int XPosition;
+    int YPosition;
+    };