Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: 4DGL-uLCD-SE Motor PinDetect SDFileSystem mbed-rtos mbed wave_player
Fork of 4180_Lab4_v6 by
Robot.h
00001 //robot 00002 class Robot 00003 { 00004 Mutex stdio_mutex; 00005 int FrogX; 00006 int FrogY; 00007 public: 00008 void drawFrog() { 00009 uLCD.filled_rectangle(XPosition-5,YPosition-5,XPosition+5,YPosition+5,RED); 00010 } 00011 00012 void drawDeadFrog() { 00013 uLCD.filled_rectangle(XPosition-5,YPosition-5,XPosition+5,YPosition+5,WHITE); 00014 } 00015 00016 void drawOutline() { 00017 uLCD.line(0, 0 , 0, 127, BLACK); 00018 uLCD.line(0, 0 , 127, 0, BLACK); 00019 uLCD.line(127, 127 , 0, 127, BLACK); 00020 uLCD.line(127, 127 , 127, 0, BLACK); 00021 } 00022 00023 void drawGrass(int Xp,int Yp) { 00024 uLCD.filled_rectangle(Xp-10,Yp-10,Xp+10,Yp+10,GREEN); 00025 } 00026 00027 void drawBar(int Xp,int Yp) { 00028 uLCD.filled_rectangle(Xp-10,Yp-10,Xp+10,Yp+10,BLACK); 00029 } 00030 00031 void drawRoad(int Xp,int Yp) { 00032 uLCD.filled_rectangle(Xp-10,Yp-10,Xp+10,Yp+10,BLACK); 00033 uLCD.line(Xp-11, Yp+1 , Xp+11, Yp+1, WHITE); 00034 uLCD.line(Xp-11, Yp-1 , Xp+11, Yp-1, WHITE); 00035 } 00036 00037 void drawCar1(int Position1, int CarWidth) { 00038 uLCD.filled_rectangle(Position1-CarWidth-1,90,Position1-CarWidth-3,100,BLACK); 00039 uLCD.line(Position1-CarWidth-1, 95+1 , Position1-CarWidth-4, 95+1, WHITE); 00040 uLCD.line(Position1-CarWidth-1, 95-1 , Position1-CarWidth-4, 95-1, WHITE); 00041 uLCD.filled_rectangle(Position1-CarWidth,95-4,Position1+CarWidth,95+4,BLUE); 00042 } 00043 00044 void drawCar2(int Position2, int CarWidth) { 00045 uLCD.filled_rectangle(Position2+CarWidth+1,48,Position2+CarWidth+3,58,BLACK); 00046 uLCD.line(Position2+CarWidth+1, 53+1 , Position2+CarWidth+4, 53+1, WHITE); 00047 uLCD.line(Position2+CarWidth+1, 53-1 , Position2+CarWidth+4, 53-1, WHITE); 00048 uLCD.filled_rectangle(Position2-CarWidth,48,Position2+CarWidth,56,RED); 00049 } 00050 00051 void drawWater(int Xp,int Yp) { 00052 uLCD.filled_rectangle(Xp-10,Yp-10,Xp+10,Yp+10,BLUE); 00053 if(Xp == 11 || Xp == 53 || Xp == 95){ 00054 uLCD.filled_rectangle(Xp-6,Yp-6,Xp+6,Yp+6,GREEN); 00055 } 00056 } 00057 00058 void drawDrown1() { 00059 uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE); 00060 uLCD.filled_rectangle(XPosition-4,YPosition-4,XPosition+4,YPosition+4,RED); 00061 uLCD.circle(XPosition, YPosition , 2, WHITE); 00062 } 00063 void drawDrown2() { 00064 uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE); 00065 uLCD.filled_rectangle(XPosition-3,YPosition-3,XPosition+3,YPosition+3,RED); 00066 uLCD.circle(XPosition, YPosition, 3, WHITE); 00067 } 00068 void drawDrown3() { 00069 uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE); 00070 uLCD.filled_rectangle(XPosition-1,YPosition-1,XPosition+1,YPosition+1,RED); 00071 uLCD.circle(XPosition, YPosition, 4 , WHITE); 00072 } 00073 void drawDrown4() { 00074 uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE); 00075 uLCD.circle(XPosition, YPosition, 5 , WHITE); 00076 uLCD.circle(XPosition, YPosition, 2 , WHITE); 00077 } 00078 void drawDrown5() { 00079 uLCD.filled_rectangle(XPosition-10,YPosition-10,XPosition+10,YPosition+10,BLUE); 00080 } 00081 00082 void drawHelper(int Xp,int Yp) { 00083 if(Yp == 11) { 00084 drawBar(Xp,Yp); //Row 1 00085 } 00086 if(Yp == 32){ 00087 drawGrass(Xp,Yp); //Row 2 00088 } 00089 if(Yp == 53){ 00090 drawRoad(Xp,Yp); //Row 3 00091 } 00092 if(Yp == 74){ 00093 drawWater(Xp,Yp); //Row 4 00094 } 00095 if(Yp == 95){ 00096 drawRoad(Xp,Yp); //Row 5 00097 } 00098 if(Yp == 116){ 00099 drawGrass(Xp,Yp); //Row 6 00100 } 00101 } 00102 00103 void drawEraser() { 00104 drawHelper(XPosition,YPosition); 00105 } 00106 00107 void moveForward() { 00108 drawHelper(XPosition,YPosition); 00109 setYPosition(getYPosition() - 21); 00110 drawFrog(); 00111 } 00112 void moveBackward() { 00113 FrogY = getYPosition(); 00114 if(FrogY > 11){ 00115 drawHelper(XPosition,YPosition); 00116 setYPosition(FrogY + 21); 00117 drawFrog(); 00118 } 00119 } 00120 void moveLeft() { 00121 FrogX = getXPosition(); 00122 if(FrogX > 11){ 00123 drawHelper(XPosition,YPosition); 00124 setXPosition(FrogX - 21); 00125 drawFrog(); 00126 } 00127 } 00128 void moveRight() { 00129 FrogX = getXPosition(); 00130 if(FrogX < 116){ 00131 drawHelper(XPosition,YPosition); 00132 setXPosition(FrogX + 21); 00133 drawFrog(); 00134 } 00135 } 00136 00137 int getXPosition() { 00138 return XPosition; 00139 } 00140 int getYPosition() { 00141 return YPosition; 00142 } 00143 00144 void setXPosition(int x) { 00145 XPosition=x; 00146 } 00147 void setYPosition(int y) { 00148 YPosition=y; 00149 } 00150 00151 Robot() 00152 { 00153 XPosition = 53; 00154 YPosition = 116; 00155 } 00156 private: 00157 00158 int XPosition; 00159 int YPosition; 00160 };
Generated on Wed Jul 20 2022 11:22:24 by
1.7.2
