#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void moveForward() {
cout << "Moving forward" << endl;
}
void turnRight() {
cout << "Turning right" << endl;
}
void stopMovement() {
cout << "Stopping movement" << endl;
}
int measureDistance() {
return rand() % 50 + 1; // Simulate distance measurement (1-50 cm)
}
void dropPackage() {
cout << "Dropping package" << endl;
}
int main() {
srand(time(0)); // Seed for random values
cout << "Starting simulation..." << endl;
for (int i = 0; i < 10; i++) { // Simulating 10 sensor readings
int distance = measureDistance();
cout << "Measured Distance: " << distance << " cm" << endl;
if (distance < 10) {
stopMovement();
dropPackage();
break;
} else if (distance < 20) {
stopMovement();
turnRight();
} else {
moveForward();
}
}
cout << "Simulation complete!" << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPGN0aW1lPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgbW92ZUZvcndhcmQoKSB7CiAgICBjb3V0IDw8ICJNb3ZpbmcgZm9yd2FyZCIgPDwgZW5kbDsKfQoKdm9pZCB0dXJuUmlnaHQoKSB7CiAgICBjb3V0IDw8ICJUdXJuaW5nIHJpZ2h0IiA8PCBlbmRsOwp9Cgp2b2lkIHN0b3BNb3ZlbWVudCgpIHsKICAgIGNvdXQgPDwgIlN0b3BwaW5nIG1vdmVtZW50IiA8PCBlbmRsOwp9CgppbnQgbWVhc3VyZURpc3RhbmNlKCkgewogICAgcmV0dXJuIHJhbmQoKSAlIDUwICsgMTsgLy8gU2ltdWxhdGUgZGlzdGFuY2UgbWVhc3VyZW1lbnQgKDEtNTAgY20pCn0KCnZvaWQgZHJvcFBhY2thZ2UoKSB7CiAgICBjb3V0IDw8ICJEcm9wcGluZyBwYWNrYWdlIiA8PCBlbmRsOwp9CgppbnQgbWFpbigpIHsKICAgIHNyYW5kKHRpbWUoMCkpOyAvLyBTZWVkIGZvciByYW5kb20gdmFsdWVzCgogICAgY291dCA8PCAiU3RhcnRpbmcgc2ltdWxhdGlvbi4uLiIgPDwgZW5kbDsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyBpKyspIHsgLy8gU2ltdWxhdGluZyAxMCBzZW5zb3IgcmVhZGluZ3MKICAgICAgICBpbnQgZGlzdGFuY2UgPSBtZWFzdXJlRGlzdGFuY2UoKTsKICAgICAgICBjb3V0IDw8ICJNZWFzdXJlZCBEaXN0YW5jZTogIiA8PCBkaXN0YW5jZSA8PCAiIGNtIiA8PCBlbmRsOwoKICAgICAgICBpZiAoZGlzdGFuY2UgPCAxMCkgewogICAgICAgICAgICBzdG9wTW92ZW1lbnQoKTsKICAgICAgICAgICAgZHJvcFBhY2thZ2UoKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfSBlbHNlIGlmIChkaXN0YW5jZSA8IDIwKSB7CiAgICAgICAgICAgIHN0b3BNb3ZlbWVudCgpOwogICAgICAgICAgICB0dXJuUmlnaHQoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBtb3ZlRm9yd2FyZCgpOwogICAgICAgIH0KICAgIH0KCiAgICBjb3V0IDw8ICJTaW11bGF0aW9uIGNvbXBsZXRlISIgPDwgZW5kbDsKICAgIHJldHVybiAwOwp9Cg==