Contribution
Une matrice binaire non vide composée de sous-matrices 3x3 mises côte à côte.
Tâche
Votre tâche consiste à identifier des modèles de dés valides (comme décrit ci-dessous) parmi les sous-matrices 3x3. Chaque modèle valide vaut la valeur des dés correspondants. Les modèles invalides valent 0.
Production
La somme des valeurs de dés valides.
Modèles de dés
Exemple
La sortie attendue pour la matrice suivante est 14 car elle contient les dés 5 , 6 et 3 , suivis d'un motif invalide (de gauche à droite et de haut en bas).
Règles
- La largeur et la hauteur de la matrice sont garanties être des multiples de 3.
- Vous devez ignorer les sous-matrices qui ne sont pas correctement alignées sur la grille (voir le 3e cas de test). Plus formellement et en supposant une indexation 0: les coordonnées de la cellule en haut à gauche de chaque sous-matrice à considérer sont de la forme .
- C'est du code-golf .
Cas de test
// 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
et utilisez'0'+''.join...
pour économiser deux octets :)R , 134 octets
Essayez-le en ligne!
J'ai remarqué que j'avais la même idée de @Heteira
Histoire :
171: -10 octets grâce à @JayCe!161: -3 octets grâce à @Giuseppe!158: -13 octets enregistrés!145: -2 octets grâce à @Giuseppe!143: -6 octets enregistrés!137: -3 octets grâce à @JayCe!la source
dim
(2^(8:0))
qui peut être supprimée.cat
la sortie deintToUtf8
: enregistrer 3 octetsPerl 6 ,
113 105 97 9794 octetsEssayez-le en ligne!
Divise la matrice en sous-matrices de 3x3, convertit les neuf 1 et 0 en base 2, puis l'indexe en une liste d'entiers pour la valeur.
Explication:
la source
Gelée ,
2928 octets-1 merci à M. Xcoder (utilisé
Ṁ
pour remplacerṢṪ
)Un lien monadique.
Essayez-le en ligne! Ou exécutez les tests .
Comment?
Par exemple, lorsqu'une sous-matrice est:
Puis les
ZU,Ɗ
rendements:... qui s'aplatit en
[0, 0, 0, 1, 1, 1, 1, 1, 1]
, qui, en convertissant de binaire, est63
qui est la sixième entrée dans la liste d'index de page de code“°€⁼-Ḍ?‘
(?
étant l'octet3F
dans la page de code de Jelly )la source
Ṁ
pourrait fonctionner au lieu deṢṪ
-1.M
>. <). Peut-on faire quelque chose d'intelligent avecŒṪ
je me demande ...Japt
-x
, 36 octetsMaintenant ça devient intéressant. Je suis sûr que l'on peut jouer au golf encore plus
Essayez-le en ligne!
la source
Retina 0.8.2 , 90 octets
Essayez-le en ligne! Explication:
Joignez tous les blocs ensemble, puis divisez-les en rangées de 9 colonnes.
Ne conservez que des modèles de dés valides (deux modèles pour
6
, puis un correspond à n'importe quel nombre de0
à5
, bien que0
cela ne contribuera bien sûr pas au décompte ci-dessous.)Comptez les pépins sur les dés valides.
la source
Rubis , 151 octets
Essayez-le en ligne!
Un lambda acceptant un tableau 2d d'entiers (ou de chaînes, je suppose). S'inspire de la réponse de Jo King . J'ai l'impression que trancher les dés hors de la matrice d'entrée a pris beaucoup de place, donc je risque d'être dépassé. Heureusement, gérer les nils ne m'a coûté qu'une poignée d'octets.
Non golfé:
la source
Clojure, 197 octets
J'aurais dû trouver quelque chose de plus intelligent.
la source
Python 2 , 159 octets
Essayez-le en ligne!
Pointe du chapeau à Jonathan Frech pour l'approche d'encodage unicode.
la source