Максим П. Задача №2
Чтобы разделить зал на четыре прямоугольные зоны, клетки начали красить в форме креста, а закончить не успели. Роберт находится в центре креста. Ему нужно довести разметку до стен.
Напиши программу, которая позволит роботу закрасить соответствующие клетки и вернуться в исходное положение.
move_left()
Сделать шаг влево
move_right()
Сделать шаг вправо
move_up()
Сделать шаг вверх
move_down()
Сделать шаг вниз
wall_from_up()
Проверить, есть ли стена сверху
wall_from_down()
Проверить, есть ли стена снизу
wall_from_left()
Проверить, есть ли стена слева
wall_from_right()
Проверить, есть ли стена справа
free_from_up()
Проверить, свободно ли сверху
free_from_down()
Проверить, свободно ли снизу
free_from_left()
Проверить, свободно ли слева
free_from_right()
Проверить, свободно ли справа
fill_cell()
Закрасить клетку
cell_is_filled()
Проверить, закрашена ли клетка
cell_is_clean()
Проверить, чиста ли клетка
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
setlocale(LC_ALL, "Russian");
int sum = 0;
vector<vector<int>> arr;
arr.resize(10);
for (int i = 0; i < 10; ++i) {
arr[i].resize(10);
}
for (int i = 0; i < 10; ++i) {
for (int j = 0; j < 10; ++j) {
arr[i][j] = rand();
cout << arr[i][j] << " ";
if (j == 9) {
cout << endl;
}
}
}
for (int i = 0, j = 0; i < 10, j < 10; ++i, ++j) {
if (arr[i][j] < 0) {
cout << "На главной диагонали есть отрицательные числа...";
return 0;
}
sum += arr[i][j];
}
cout << "Сумма элементов главной диагонали: ";
cout << sum;
}