introduction
Dans ce défi, vous recevez en entrée la représentation ASCII du réseau (surface dépliée) d'un cuboïde rectangulaire (zone 3D). Le format est le suivant:
....+--+.......
....|##|.......
....|##|.......
....|##|.......
+---+--+---+--+
|###|##|###|##|
+---+--+---+--+
....|##|.......
....|##|.......
....|##|.......
....+--+.......
Chaque face du cuboïde est un rectangle de #
s entouré de +-|
caractères. L'extérieur du filet est rempli de .
s. Le filet aura toujours la même orientation: il y a une face médiane entourée de ses quatre faces voisines et la contrepartie de la face médiane est située à la droite de l'entrée. L'entrée est complétée avec .
s en une forme rectangulaire et ne contiendra pas de lignes ou de colonnes supplémentaires de .
s.
La tâche
Votre tâche consiste à prendre en entrée un diagramme comme ci-dessus et à calculer le volume du cuboïde qu'il représente, qui est simplement le produit de sa hauteur, de sa largeur et de sa profondeur. Vous pouvez prendre l’entrée sous la forme d’une chaîne délimitée par une ligne ou d’un tableau de chaînes.
La longueur de chaque bord est la distance entre les +
caractères à ses deux extrémités. Par exemple, le bord horizontal +--+
a une longueur de 3 et le bord vertical
+
|
|
|
+
a une longueur de 4. La longueur minimale d’une arête est de 1. Le cuboïde exemple ci-dessus a un volume de 2 * 3 * 4 = 24.
Règles et notation
Vous pouvez écrire un programme complet ou une fonction, et le nombre d'octets le plus faible gagne.
Cas de test
.++..
+++++
+++++
.++..
1
...++....
...||....
...||....
+--++--++
+--++--++
...||....
...||....
...++....
3
..+-+....
..|#|....
+-+-+-+-+
|#|#|#|#|
|#|#|#|#|
+-+-+-+-+
..|#|....
..+-+....
12
.+---+.....
++---++---+
||###||###|
||###||###|
||###||###|
++---++---+
.+---+.....
16
....++.....
....||.....
....||.....
....||.....
+---++---++
|###||###||
|###||###||
|###||###||
+---++---++
....||.....
....||.....
....||.....
....++.....
16
...+--+......
...|##|......
...|##|......
+--+--+--+--+
|##|##|##|##|
+--+--+--+--+
...|##|......
...|##|......
...+--+......
18
....+--+.......
....|##|.......
....|##|.......
....|##|.......
+---+--+---+--+
|###|##|###|##|
+---+--+---+--+
....|##|.......
....|##|.......
....|##|.......
....+--+.......
24
....+-----+..........
....|#####|..........
....|#####|..........
....|#####|..........
+---+-----+---+-----+
|###|#####|###|#####|
|###|#####|###|#####|
|###|#####|###|#####|
|###|#####|###|#####|
+---+-----+---+-----+
....|#####|..........
....|#####|..........
....|#####|..........
....+-----+..........
120