0

У меня есть 2-мерный массив, в котором хранится информация о шаблоне. Данные могут выглядеть следующим образом:Хранение и сравнение рисунков сетки

enter image description here

var testGrid = [["blank", "red", "blank"], 
/* row 2 */ ["blank", "yellow", "green"], 
/* row 3 */ ["blank", "blue", "blank"]]; 

Максимальный размер рисунка 3 по 3 сетке, однако, не все места должны быть использованы. Поскольку пробелы в основном означают, что там нет никакой информации, я регулярно сталкиваюсь с сценариями, где два шаблона структурированы по-разному, но функционально одинаковы. Пример:

[["red", "red" "blank"], 
["red", "red", "blank"], 
["blank", "blank", "blank"] 

[["blank", "blank", "blank"], 
["blank", "red", "red"], 
["blank", "red", "red"]] 

Все рисунки имели бы 4 возможных изображения из-за ориентации. Тем не менее, некоторые модели, как этот ниже:

enter image description here

[["blank", "blank", "blank"], 
["blank", "yellow", "green"], 
["blank", "blue", "blank"]] 

будет иметь 8 возможных представлений в 3 по 3 сетке.

Поэтому у меня есть несколько вопросов:

  1. Что было бы лучшим способом сохранить эти данные? Я думал, что могу хранить более простые шаблоны в виде сетки 2 на 2, что уменьшит количество проверок, которые я должен был бы сделать на них, до нормального 4.

  2. Каков наилучший способ проверки шаблонов уже в базе данных? Просто пропустите функцию, которая сравнивает вновь созданный шаблон с каждой другой записью в базе данных? (Кстати, я использую mongoDB).

+1

как много цветов? и вы имеете в виду 8 представлений? вращаются вокруг центра, ок, то есть 4, а затем? зеркальные? в переводе? – Thomas

+0

извините, я имею в виду перевод –

ответ

0

Один из вариантов - использовать число (шестнадцатеричный/десятичный) для кодирования цвета и сохранения. Так что, если blank = 0, red = 1, green = 2, yellow = 3

Тогда

["blank", "yellow", "green"] = "032" 
Смежные вопросы