ссылка на тестовое https://drive.google.com/drive/folders/1SZmOKUKYmJhtUwOeauwsPttPcuXdNDqS
- предполагается, что положение строки с картами находится на фиксированном расстоянии от верхней границы игрового поля (иначе пришлось бы отдельно решать задачу поиска этой строки, а это, кажется, не нужно)
- размер карты и расстояние между картами предполагается фиксированными
- всего в строке не должно быть более 5 карт
- в решении сознательно не используются конкретные значения цветов карт и фона, вместо этого используются эвристики на основании формы
- очевидно, наибольшей проблемой являлся нечеткий поиск данного символа среди известных нам шаблонов: мне удалось добиться точности в 100% на наборе обозначенном как
thin
, и 99.2% обозначенном какacc_992_thrsh075
- в целом решение получилось достаточно простое, поэтому документации к методам не приведено сознательно, дабы не раздувать и без того немаленький код
- вместе с тем у меня получилось - как мне кажется - уложиться в 200 строк
- некоторые методы класса Utils не используются, однако в задании было указано передать весь код, поэтому методы для генерации шаблонов я оставил
- точкой в хода в приложение является класс
Solution
- jar был собран средствами Idea, я счел лишним писать ant- gradle- maven- скрипты для проекта без зависимостей
- в продолжение нашего прошлого разговора про final поля в конструкторе, прикрепляю ссылку на Шипилева, который ссылается на JLS: https://shipilev.net/blog/2014/safe-public-construction/#_safe_initialization
- на имеющемся у меня железе однако не получилось воспроизвести пример упоминаемого поведения, возможно нужно JMH или другие процессоры/JDK, но к сожалению просто не хватает времени..
- на всякий случай прошу прощения за конкатенацию строк через "+"
- JAVA_HOME предполагается настроенным и java находится в PATH