0 / 0 / 0
Регистрация: 14.10.2021
Сообщений: 45
|
||||||
1 | ||||||
Поле клеток04.06.2022, 17:04. Показов 865. Ответов 13
Здравствуйте , подскажите пожалуйста , есть двумерный массив , размер 2 столба по 3 элемента. Заполненный рандомными числами до 10.
Одна цифра - одна клетка (условно). Нужно сделать проверку : если текущий номер клетки увеличен на 1, есть вокруг нее, то увеличить номер клетки на 1, иначе оставить, каким был. Пример: 1 5 9 2 6 5 Вокруг 1 есть 2 и 5 , 2 больше 1 на 1 , значит нужно к 1 + 1: 2 5 9 2 6 5 И так сделать проверку для каждой цифры (клетки) , потом вывести результат. Как сделать саму проверку? Вот код:
0
|
04.06.2022, 17:04 | |
Ответы с готовыми решениями:
13
Друзья, подскажите, как в классе создать константное поле, ссылочное поле и объектное поле? Перекраска клеток Игра в закрашивание клеток Пересечение клеток на плоскости отрезком Цвет клеток на шахматной доске |
1709 / 1109 / 337
Регистрация: 25.01.2019
Сообщений: 2,910
|
|
04.06.2022, 17:08 | 2 |
1
|
1709 / 1109 / 337
Регистрация: 25.01.2019
Сообщений: 2,910
|
|
04.06.2022, 17:12 | 3 |
ХЗ чо там надо, но для начала явно нужен ещё один такой же буферный массив.
0
|
0 / 0 / 0
Регистрация: 14.10.2021
Сообщений: 45
|
|
04.06.2022, 17:54 [ТС] | 4 |
Вот и я о том же, надо сделать эту проверку , а я понятия не имею как
0
|
случайный прохожий
2934 / 1951 / 606
Регистрация: 20.07.2013
Сообщений: 5,160
|
|
04.06.2022, 20:21 | 5 |
Один вопрос - сначала все клетки проверяем, а потом выводим (если нужно, с увеличением), или для каждой клетки делаем проверку и сразу увеличиваем, а потом снова проверяем (с самого начала)? Думаю, первый вариант, но не на 100%.
Как делать проверку (вроде очевидно) - сравниваешь со значениями слева / справа / сверху / снизу (если они есть).
0
|
0 / 0 / 0
Регистрация: 14.10.2021
Сообщений: 45
|
|
04.06.2022, 20:27 [ТС] | 6 |
Проверяем каждую клетку, справа, слева, снизу, сверху и потом уже выводим результат
0
|
2832 / 2337 / 707
Регистрация: 29.06.2020
Сообщений: 8,658
|
|
04.06.2022, 20:51 | 7 |
в каком порядке ?
со старыми значениями или новыми, уже увеличенными ? Сколько раз делать проверки ? 1 или пока не будет ни одного изменения значения ? Вот этих всех нюансов в ТЗ нету. То есть - неопределенное поведение (UB)
0
|
0 / 0 / 0
Регистрация: 14.10.2021
Сообщений: 45
|
|
04.06.2022, 21:33 [ТС] | 8 |
Ну проверяем по очереди, если находим клетку в радиусе которой есть больше на 1 увеличиваем её и идём дальше до конца, и все
0
|
1709 / 1109 / 337
Регистрация: 25.01.2019
Сообщений: 2,910
|
|
04.06.2022, 22:00 | 9 |
gunslinger, SmallEvil,
Вы чо, сурьёзно? Бессмысленно делать это только на одной "матрице" В ТЗ нет лишь всего остального нормального ТЗ. Yan_L, Что это, Ъ, означает? Соберись и выдай максимально развёрнуто и понятно.
1
|
случайный прохожий
2934 / 1951 / 606
Регистрация: 20.07.2013
Сообщений: 5,160
|
|
04.06.2022, 22:07 | 10 |
Folian, где я явно говорил про одну матрицу? И даже если "меня неправильно поняли и слова вырваны из контекста", то дело (было) вовсе не в реализации ("тысячи их"), а в понимании "сакрального" смысла задачи.
2
|
0 / 0 / 0
Регистрация: 14.10.2021
Сообщений: 45
|
|
04.06.2022, 22:40 [ТС] | 11 |
Есть поле клеток (размер клеток выбирается: маленькие \средние\большие - 3 варианта с соответствующим размером) и есть набор цветов (количество выбирается пользователем, но ограничено заданным максимальным количеством), где каждому соответствует свой номер, при создании поля цвета выбираются случайно для каждой клетки.
Следующим шагом проверяются клетки: если текущий номер цвета клетки увеличен на 1, есть вокруг нее (или N таких клеток, где N задается сначала), то увеличить номер цвета на 1, иначе оставить, каким был. Выполнить моделирование с помощью описанной логики. Вывод на каждом шагу производить с помощью цифр. То есть ячейка отображается как одна или несколько одинаковых цифр (в зависимости от выбранного размера). То есть, например, клетка среднего размера, которой соответствует цвет под номером 1, может отображаться на поле : 1 1 1 1 А большого размера: 1 1 1 1 1 1 1 1 1
0
|
1709 / 1109 / 337
Регистрация: 25.01.2019
Сообщений: 2,910
|
|
05.06.2022, 11:19 | 12 |
0
|
2832 / 2337 / 707
Регистрация: 29.06.2020
Сообщений: 8,658
|
||||||
05.06.2022, 15:42 | 13 | |||||
Yan_L, ладно, могу дать несколько советов.
Все ниже написанное полная отсебятина и допущения, и не рекомендуется использовать НИКОМУ. Проверка ячеек и их "рост", будет рассчитываться для всех ячеек и один раз. Исходную матрицу с кубиками разного размера, преобразуем в матрице с 1 элементом (реально или логически, не важно). Создаем новую матрицу с размерами исходной. Делаем подсчет и изменяем согласно ПРАВИЛу. ПРАВИЛО : - Если значения хоть одного СОСЕДа текущей, больше на 1 - увеличиваем значение текущей ячейки на 1. СОСЕДИ : - все доступные прилегающие ячейки массива к текущей, влево, вправо , вверх, вниз.
а квадратные области. С классом, написанным нужными методами и данными на std::vector, было бы легко и не принужденно. Добавлено через 59 секунд А почему 5-и не заменились на 6, ведь 6 же больше на 1 за 5 ???
0
|
0 / 0 / 0
Регистрация: 14.10.2021
Сообщений: 45
|
|
05.06.2022, 15:46 [ТС] | 14 |
5 поменяется на 6, мы идём по каждой цифре, и каждую цифру изменяем если есть вокруг стоящая на 1 больше, я просто примером показал на одной цифре)
Сейчас буду разбирать код, спасибо
0
|
05.06.2022, 15:46 | |
05.06.2022, 15:46 | |
Помогаю со студенческими работами здесь
14
Нумерация клеток заданной полоски Движение игроков по полю 9 на 9 клеток Координаты двух клеток шахматной доски Сосчитать количество пересеченных отрезком клеток Посчитать количество занятых клеток кроссворда Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |