introduzione
In questa sfida, ti viene data in input la rappresentazione ASCII della rete (superficie aperta) di un cuboide rettangolare (scatola 3D). Il formato è questo:
....+--+.......
....|##|.......
....|##|.......
....|##|.......
+---+--+---+--+
|###|##|###|##|
+---+--+---+--+
....|##|.......
....|##|.......
....|##|.......
....+--+.......
Ogni faccia del cuboide è un rettangolo di #
s circondato da +-|
caratteri. L'esterno della rete è pieno di .
s. La rete avrà sempre lo stesso orientamento: c'è una faccia centrale circondata dalle sue quattro facce vicine, e la controparte della faccia media è al margine destro dell'input. L'input è riempito con .
s in una forma rettangolare e non conterrà righe o colonne extra di .
s.
L'obiettivo
Il tuo compito è prendere come input un diagramma come sopra e calcolare il volume del cuboide che rappresenta, che è solo il prodotto della sua altezza, larghezza e profondità. È possibile accettare l'input come stringa delimitata da nuova riga o come matrice di stringhe.
La lunghezza di ciascun bordo è la distanza tra i +
caratteri alle sue due estremità. Ad esempio, il bordo orizzontale +--+
ha lunghezza 3 e il bordo verticale
+
|
|
|
+
ha lunghezza 4. La lunghezza minima di un bordo è 1. L'esempio cuboide sopra ha volume 2 * 3 * 4 = 24.
Regole e punteggio
È possibile scrivere un programma completo o una funzione e vince il conteggio dei byte più basso.
Casi test
.++..
+++++
+++++
.++..
1
...++....
...||....
...||....
+--++--++
+--++--++
...||....
...||....
...++....
3
..+-+....
..|#|....
+-+-+-+-+
|#|#|#|#|
|#|#|#|#|
+-+-+-+-+
..|#|....
..+-+....
12
.+---+.....
++---++---+
||###||###|
||###||###|
||###||###|
++---++---+
.+---+.....
16
....++.....
....||.....
....||.....
....||.....
+---++---++
|###||###||
|###||###||
|###||###||
+---++---++
....||.....
....||.....
....||.....
....++.....
16
...+--+......
...|##|......
...|##|......
+--+--+--+--+
|##|##|##|##|
+--+--+--+--+
...|##|......
...|##|......
...+--+......
18
....+--+.......
....|##|.......
....|##|.......
....|##|.......
+---+--+---+--+
|###|##|###|##|
+---+--+---+--+
....|##|.......
....|##|.......
....|##|.......
....+--+.......
24
....+-----+..........
....|#####|..........
....|#####|..........
....|#####|..........
+---+-----+---+-----+
|###|#####|###|#####|
|###|#####|###|#####|
|###|#####|###|#####|
|###|#####|###|#####|
+---+-----+---+-----+
....|#####|..........
....|#####|..........
....|#####|..........
....+-----+..........
120