

Задача "Морской бой"
Дано поле Морского боя (10×10). Ячейка обозначается:
0, если там ничего нет;
1, если там находится корабль;
2, если там находится разбитый корабль.
Производится выстрел по координатам (x, y). Если выстрел попал в корабль (там, где стоит 1), то палуба этого корабля становится разбитой. Выведите на экран изменённое поле.
Формат входных данных
С клавиатуры вводятся 10 строк по 10 элементов через пробел (0, 1 или 2) — поле морского боя.
В следующей строке натуральные числа x и y — координаты удара через пробел. Первое число — номер строки, второе число — номер столбца. Нумерация начинается с 1.
Формат выходных данных
Необxодимо вывести изменённое поле из 10 строк по 10 элементов.
Примеры
ВХОДНЫЕ ДАННЫЕ
0 0 0 0 0 0 0 0 0 0
0 1 1 2 1 0 0 1 1 1
0 0 0 0 0 0 0 0 0 0
1 0 1 1 1 0 1 1 0 0
1 0 0 0 0 0 0 0 0 1
0 0 1 0 1 0 1 0 0 1
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
2 2
ВЫХОДНЫЕ ДАННЫЕ
0 0 0 0 0 0 0 0 0 0
0 2 1 2 1 0 0 1 1 1
0 0 0 0 0 0 0 0 0 0
1 0 1 1 1 0 1 1 0 0
1 0 0 0 0 0 0 0 0 1
0 0 1 0 1 0 1 0 0 1
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
Вот пример кода на Python:
(Обязательно черточки убрать)
l = []
for i in range(10):
----row = list(map(int,input().split()))
----l.append(row)
x,y = map(int,input().split())
if l[x-1][y-1] == 1:
----l[x-1][y-1] = 2
for i in l:
----print(*i)
Чтобы выполнить задачу по Морскому бою в C++, вы можете создать двумерный массив для хранения состояния игрового поля и обновить его, когда пользователь введет координаты выстрела. Вот пример кода, который делает это:
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<vector<int>> field(10, vector<int>(10)); // Создание поля 10x10
int x, y;
// Заполнение поля значениями, введенными пользователем
for (int i = 0; i < 10; ++i) {
for (int j = 0; j < 10; ++j) {
cin >> field[i][j];
}
}
// Ввод координат выстрела
cin >> x >> y;
--x; // Уменьшаем x и y на 1, так как нумерация начинается с 1
--y;
// Проверяем, есть ли корабль в данной ячейке
if (field[x][y] == 1) {
field[x][y] = 2; // Обновляем ячейку как попадание
}
// Вывод обновленного поля
for (int i = 0; i < 10; ++i) {
for (int j = 0; j < 10; ++j) {
cout << field[i][j] << " ";
}
cout << endl;
}
return 0;
}
Чтобы запустить эту программу, введите значения для всего поля Морского боя, затем введите координаты выстрела, и программа обновит поле и выведет его на экран.
ого вот это ты умный