вход
Непустая двоичная матрица, состоящая из 3x3 подматриц, расположенных рядом.
задача
Ваша задача состоит в том, чтобы определить допустимые образцы костей (как описано ниже) среди подматриц 3x3. Каждый действительный шаблон стоит значение соответствующей кости. Неверные шаблоны стоят 0.
Выход
Сумма действительных значений костей.
Образцы игры в кости
пример
Ожидаемый результат для следующей матрицы - 14, потому что она содержит кости 5 , 6 и 3 , за которыми следует недопустимый шаблон (слева направо и сверху вниз).
правила
- Ширина и высота матрицы гарантированно будут кратны 3.
- Вы должны игнорировать подматрицы, которые не выровнены должным образом в сетке (см. 3-й тестовый пример). Более формально и предполагая 0-индексирование: координаты верхней левой ячейки каждой рассматриваемой подматрицы имеют вид .
- Это код-гольф .
Контрольные примеры
// 0
[ [ 1,0,0 ],
[ 0,0,1 ],
[ 1,0,0 ] ]
// 2
[ [ 0,0,1 ],
[ 0,0,0 ],
[ 1,0,0 ] ]
// 0 (0 + 0)
[ [ 0,0,1,0,1,0 ],
[ 0,0,0,1,0,0 ],
[ 0,0,1,0,1,0 ] ]
// 9 (3 + 3 + 3)
[ [ 1,0,0,0,0,1,1,0,0 ],
[ 0,1,0,0,1,0,0,1,0 ],
[ 0,0,1,1,0,0,0,0,1 ] ]
// 6 (6 + 0)
[ [ 1,0,1 ],
[ 1,0,1 ],
[ 1,0,1 ],
[ 1,0,1 ],
[ 1,0,0 ],
[ 1,0,1 ] ]
// 14 (5 + 6 + 3 + 0)
[ [ 1,0,1,1,1,1 ],
[ 0,1,0,0,0,0 ],
[ 1,0,1,1,1,1 ],
[ 1,0,0,0,0,0 ],
[ 0,1,0,0,1,0 ],
[ 0,0,1,0,1,0 ] ]
// 16 (1 + 2 + 3 + 4 + 0 + 6)
[ [ 0,0,0,1,0,0,1,0,0 ],
[ 0,1,0,0,0,0,0,1,0 ],
[ 0,0,0,0,0,1,0,0,1 ],
[ 1,0,1,1,1,1,1,0,1 ],
[ 0,0,0,1,0,1,1,0,1 ],
[ 1,0,1,1,1,1,1,0,1 ] ]
//3
и используйте,'0'+''.join...
чтобы сохранить два байта :)R 134 байта
Попробуйте онлайн!
Я заметил, что у меня было такое же представление о @Heteira
История:
171: -10 байт благодаря @JayCe!161: -3 байта благодаря @Giuseppe!158: -13 байтов сохранено!145: -2 байта благодаря @Giuseppe!143: -6 байт сохранено!137: -3 байта благодаря @JayCe!источник
dim
(2^(8:0))
которые можно удалить.cat
результатintToUtf8
: сохранить 3 байтаPerl 6 ,
113 105 9794 байтовПопробуйте онлайн!
Разбивает матрицу на подматрицы 3x3, преобразует девять 1 и 0 в основание 2, а затем индексирует ее в список целых чисел для значения.
Объяснение:
источник
Желе ,
2928 байт-1 благодаря мистеру Xcoder (используйте
Ṁ
для заменыṢṪ
)Монадическая ссылка.
Попробуйте онлайн! Или запустить тесты .
Как?
Например, когда подматрица:
Тогда
ZU,Ɗ
получается:... который сглаживает к
[0, 0, 0, 1, 1, 1, 1, 1, 1]
, который, преобразование из двоичного, является ,63
который является шестым запись в списке индексов кода страницы“°€⁼-Ḍ?‘
(?
будучи байт3F
в кодовой странице Jelly в )источник
Ṁ
может работать вместоṢṪ
-1.M
>. <).ŒṪ
Интересно, можно ли что-нибудь сделать умным ...Japt
-x
, 36 байтТеперь становится интересно. Я уверен, что можно играть в гольф еще больше
Попробуйте онлайн!
источник
Сетчатка 0.8.2 , 90 байт
Попробуйте онлайн! Объяснение:
Соедините все блоки вместе, а затем разбейте их на ряды по 9 столбцов.
Сохраняйте только допустимые шаблоны кубиков (два шаблона для
6
, затем один соответствует любому числу от0
до5
, хотя,0
конечно, это не повлияет на количество ниже).Подсчитайте количество пипсов на действительных кубиках.
источник
Рубин , 151 байт
Попробуйте онлайн!
Лямбда, принимающая двумерный массив целых чисел (или, я думаю, строк). Вдохновляется ответом Джо Кинга . Я чувствую, что нарезка кубиков из входной матрицы заняла много места, так что я вполне могу быть вне игры. К счастью, работа с nils обошлась мне всего в несколько байт.
Ungolfed:
источник
Clojure, 197 байт
Я должен был придумать что-нибудь умнее.
источник
Python 2 , 159 байт
Попробуйте онлайн!
Шляпный отзыв Джонатану Фречу о подходе к кодировке Unicode.
источник