У меня есть два двумерных массива, которые я бы хотел сравнить. Я хотел бы изменить каждый элемент, который отличается между этими двумя массивами.Как сравнить два двухмерных массива?
- Элементы массива должны находиться в одном порядке.
- Операция будет выполняться очень часто.
- Двумерные массивы могут составлять до 100x100 элементов.
Как бы я смог достичь этого?
Первый массив - это матрица (предположим, 50x50, но это может варьироваться). Затем я сделаю несколько тестов для каждого элемента и измените элемент, если будут соблюдены определенные условия. Элемент НЕ изменен в первом массиве, вместо этого я сохраняю все элементы во втором массиве.
Элементы могут быть либо «O», либо «» (пробел).
Примера массив может выглядеть следующим образом:
@Array = ([" ", "O", "O", "O", " "], [" ", "O", " ", " ", "O"], ["O", "O", " ", "O", " "], [" ", "O", "O", "O", "O"], [" ", " ", " ", "O", " "])
После каждой итерации (одна итерации = все проверки побежали по всем элементам), новый массив печатается пользователю. Причина, по которой я хочу сравнить массивы, заключается в том, что я хотел бы видеть, какие элементы изменились.
Некоторые примеры кода, что я до сих пор:
foreach my $Row(@GameBoard) {
foreach my $CurrentCell (@$Row) {
<<COMPARE ELEMENT TO THE CORRESPONDING ELEMENT IN THE OTHER ARRAY HERE>>
}
}
Для получения более подробной информации о какой-то, что я хотел бы сделать, это реализация Perl игры Конвея жизни. У меня все получилось, но теперь я хочу «оживить» рост и смерть ячеек («O» -> «o» -> «.» -> "") перед запуском следующей итерации.
вы упоминаете «изменить», если соответствующие элементы отличаются. Но что именно изменить? Пожалуйста, объясни. Кроме того, было бы неплохо иметь пример набора массивов, о котором вы говорите, с образцами данных. –
Пример кода помогает устранить неполадки. Что у тебя до сих пор. Являются ли массивы определенно всегда одной и той же геометрией? – Sobrique
Я отредактировал мой вопрос, надеюсь, теперь это яснее. – Bifrost