- 205
- 12
- 103
Короче, хочу сделать проверку мультиблока относительными координатами, но с назначением заранее заготовленной карты. Сперва покажу на двухмерном примере:
AAAAA
ASSSA
ASCSA
ASSSA
AAAAA
Где А - блоки воздуха, S - блоки камня, а C - центральный блок, от которого идет валидация структуры.
Если я правильно понимаю принцип, мне нужно создать по массиву строк для каждого ряда символов. В соответствии с примером выше таких массивов строк будет 5. Затем, по каждому такому массиву строк пройтись циклом, и для каждого значения сравнивать блок на относительных координатах с задаваемым мной в "изображении". На словах звучит довольно просто, но как это сделать правильно в виде кода - я пока не представляю. На уме пока не самая лучшая реализация, но, в теории, работающая.
Возьмем другой пример уже более сложный, т.к. трехмерный:
AAA
ASA
AAA
AAA
ACA
AAA
AAA
ASA
AAA
Обозначения те же: центральный блок, камень и воздух.
В данном случае (опять же, если я верно понял) необходимо каждый ряд засунуть в массив, затем эти массивы засунуть в еще один массив, который будет обозначать слой, и уже по каждому из таких слоев пройтись циклом для валидации.
Тут степень моего непонимания правильной реализации возросла еще в несколько раз, потому я и пишу сюда. Буду рад идеям или ссылкам на готовые реализации, дабы понять принцип работы.
AAAAA
ASSSA
ASCSA
ASSSA
AAAAA
Где А - блоки воздуха, S - блоки камня, а C - центральный блок, от которого идет валидация структуры.
Если я правильно понимаю принцип, мне нужно создать по массиву строк для каждого ряда символов. В соответствии с примером выше таких массивов строк будет 5. Затем, по каждому такому массиву строк пройтись циклом, и для каждого значения сравнивать блок на относительных координатах с задаваемым мной в "изображении". На словах звучит довольно просто, но как это сделать правильно в виде кода - я пока не представляю. На уме пока не самая лучшая реализация, но, в теории, работающая.
Возьмем другой пример уже более сложный, т.к. трехмерный:
AAA
ASA
AAA
AAA
ACA
AAA
AAA
ASA
AAA
Обозначения те же: центральный блок, камень и воздух.
В данном случае (опять же, если я верно понял) необходимо каждый ряд засунуть в массив, затем эти массивы засунуть в еще один массив, который будет обозначать слой, и уже по каждому из таких слоев пройтись циклом для валидации.
Тут степень моего непонимания правильной реализации возросла еще в несколько раз, потому я и пишу сюда. Буду рад идеям или ссылкам на готовые реализации, дабы понять принцип работы.