Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- enum direction {
- NORTH,
- EAST,
- SOUTH,
- WEST
- };
- // Маршрут робота
- const int route[][3] = {
- {0, 1},
- {1, 1},
- {1, 0},
- {2, 0},
- {2, 1},
- {3, 1},
- {3, 0},
- {4, 0},
- {4, 1},
- {5, 1},
- {5, 2},
- {0, 2}
- };
- // Начальные координаты и направление робота
- int coord[2] = {0, 0};
- int coord_direction = EAST;
- int i;
- int main(){
- // Пробежка по маршруту
- // j=0 - координата по Y
- // j=1 - координата по X
- // j=2 - количество загружаемых шариков
- for(i = 0; i < sizeof(route)/sizeof(route[0]); ++i){
- // Проверяем, есть ли где-то ошибка в маршруте
- if((coord[0]!=route[i][0]) && (coord[1]!=route[i][1])){
- cout << "Ошибка в маршруте. Где-то не просмотрен перекресток." << endl;
- cout << "Координаты робота: X=" << coord[1] << " Y=" << coord[0] << " Направление=" << coord_direction << endl;
- cout << "Координаты итерации: X=" << route[i][1] << " Y=" << route[i][0] << endl;
- break;
- }
- // Поворот по X
- if(coord[1]<route[i][1]){
- if(coord_direction==SOUTH){
- coord_direction--;
- cout << "LEFT" << endl;
- }else{
- while(coord_direction!=EAST){
- coord_direction++;
- cout << "RIGHT" << endl;
- if(coord_direction==WEST+1)
- coord_direction = NORTH;
- }
- }
- }else if(route[i][1]<coord[1]){
- if(coord_direction==NORTH){
- coord_direction = WEST;
- cout << "LEFT" << endl;
- }else{
- while(coord_direction!=WEST){
- coord_direction++;
- cout << "RIGHT" << endl;
- if(coord_direction==WEST+1)
- coord_direction = NORTH;
- }
- }
- }
- // Поворот по Y
- if(coord[0]<route[i][0]){
- if(coord_direction==EAST){
- coord_direction--;
- cout << "LEFT" << endl;
- }else{
- while(coord_direction!=NORTH){
- coord_direction++;
- cout << "RIGHT" << endl;
- if(coord_direction==WEST+1)
- coord_direction = NORTH;
- }
- }
- }else if(route[i][0]<coord[0]){
- if(coord_direction==WEST){
- coord_direction--;
- cout << "LEFT" << endl;
- }else{
- while(coord_direction!=SOUTH){
- coord_direction++;
- cout << "RIGHT" << endl;
- if(coord_direction==WEST+1)
- coord_direction = NORTH;
- }
- }
- }
- // Движение вперед
- while(coord[1]<route[i][1]){
- coord[1]++;
- cout << "FORWARD" << endl;
- }
- while(coord[1]>route[i][1]){
- coord[1]--;
- cout << "FORWARD" << endl;
- }
- while(coord[0]<route[i][0]){
- coord[0]++;
- cout << "FORWARD" << endl;
- }
- while(coord[0]>route[i][0]){
- coord[0]--;
- cout << "FORWARD" << endl;
- }
- // Кидаем мячи
- if(route[i][2]){
- cout << "THROW " << route[i][2] << " BALLS" << endl;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement