Wkład
Niepusta macierz binarna składająca się z podmacierzy 3x3 umieszczonych obok siebie.
Zadanie
Twoim zadaniem jest zidentyfikowanie prawidłowych wzorów kości (jak opisano poniżej) wśród podmacierzy 3x3. Każdy prawidłowy wzór jest wart wartości odpowiednich kości. Nieprawidłowe wzory są warte 0.
Wydajność
Suma prawidłowych wartości kości.
Wzory kości
Przykład
Oczekiwany wynik dla następnej macierzy wynosi 14, ponieważ zawiera ona kości 5 , 6 i 3 , po których następuje nieprawidłowy wzór (od lewej do prawej i od góry do dołu).
Zasady
- Zarówno szerokość, jak i wysokość matrycy są gwarantowane jako wielokrotności 3.
- Musisz zignorować podmacierze, które nie są odpowiednio wyrównane na siatce (patrz 3. przypadek testowy). Bardziej formalnie i zakładając 0 indeksowanie: współrzędne górnego rogu każdej komórki macierzy sub należy uwzględnić w postaci .
- To jest golf golfowy .
Przypadki testowe
// 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
i użyj,'0'+''.join...
aby zaoszczędzić dwa bajty :)R , 134 bajty
Wypróbuj online!
Zauważyłem, że mam taki sam pomysł na @Heteira
Historia:
171: -10 bajtów dzięki @JayCe!161: -3 bajty dzięki @Giuseppe!158: -13 bajtów zapisanych!145: -2 bajty dzięki @Giuseppe!143: -6 zapisanych bajtów!137: -3 bajty dzięki @JayCe!źródło
dim
(2^(8:0))
których można usunąć.cat
intToUtf8
Perl 6 ,
113 105 9794 bajtówWypróbuj online!
Dzieli macierz na podmacierze 3x3, konwertuje dziewięć 1 i 0 na bazę 2, a następnie indeksuje ją na listę liczb całkowitych wartości.
Wyjaśnienie:
źródło
Galaretka ,
2928 bajtów-1 dzięki Mr. Xcoder (użyj
Ṁ
do zastąpieniaṢṪ
)Link monadyczny.
Wypróbuj online! Lub uruchom testy .
W jaki sposób?
Na przykład, gdy macierz podrzędna to:
Następnie
ZU,Ɗ
daje:... który spłaszcza się do
[0, 0, 0, 1, 1, 1, 1, 1, 1]
, który, konwertując z pliku binarnego, jest63
szóstym wpisem na liście indeksów stron kodowych“°€⁼-Ḍ?‘
(?
bajt3F
na stronie kodowej Jelly )źródło
Ṁ
może działać zamiastṢṪ
-1.M
>. <).ŒṪ
Zastanawiam się, czy można zrobić coś sprytnego ...Japt
-x
, 36 bajtówTeraz robi się ciekawie. Jestem pewien, że można grać w golfa jeszcze bardziej
Wypróbuj online!
źródło
Retina 0.8.2 , 90 bajtów
Wypróbuj online! Wyjaśnienie:
Połącz wszystkie bloki razem, a następnie podziel z powrotem na rzędy po 9 kolumn.
Zachowaj tylko prawidłowe wzory kości (dwa wzory dla
6
, a następnie jeden pasuje do dowolnej liczby od0
do5
, chociaż0
oczywiście nie przyczyni się do liczenia poniżej).Policz pipsy na prawidłowych kostkach.
źródło
Rubin , 151 bajtów
Wypróbuj online!
Lambda akceptuje tablicę 2d ints (lub ciągów, jak sądzę). Inspiruje się odpowiedzią Jo Kinga . Wydaje mi się, że wycięcie kości z matrycy wejściowej zajęło dużo miejsca, więc mogę zostać obezwładniony. Na szczęście radzenie sobie z zerami kosztuje tylko garść bajtów.
Nie golfowany:
źródło
Clojure, 197 bajtów
Powinienem był wymyślić coś mądrzejszego.
źródło
Python 2 , 159 bajtów
Wypróbuj online!
Czapka dla Jonathana Frecha na temat kodowania Unicode.
źródło