Stai organizzando una caccia al tesoro per i tuoi amici. Per condurre le cose più facilmente, vuoi disegnare una mappa di tutti i luoghi in cui hai nascosto gli oggetti preziosi.
Ingresso
È 0 0
consentita qualsiasi forma di input che indica un elenco di punti costituiti da coordinate xe y (non negative), essendo l'angolo in alto a sinistra (Nota: è possibile utilizzare anche l'indicizzazione basata su 1 nella risposta, si prega di commentare che se si ). Esempio:
1 2
3 0
0 1
Sfida
La tua funzione o programma dovrebbe essere in grado di costruire una mappa che denota ogni data posizione con un punto in x
cui si trova il segno nella riga y + 1 e nella colonna x + 1 nell'output. Le posizioni non contrassegnate sono rappresentate con a . La mappa è inoltre composta da una cornice in cui gli angoli sono
+
s, le linee verticali sono se |
le linee orizzontali sono -
s. La tua soluzione dovrebbe produrre il frame più piccolo possibile. Mappa per l'esempio di input fornito sopra:
+----+
| x|
|x |
| x |
+----+
Possibili casi di test
"0 0"
=>
+-+
|x|
+-+
"0 10
5 5
10 0"
=>
+-----------+
| x|
| |
| |
| |
| |
| x |
| |
| |
| |
| |
|x |
+-----------+
""
=>
++
++
"0 0
0 2
2 0"
=>
+---+
|x x|
| |
|x |
+---+
Ovviamente, questo è code-golf , il che significa che vince la soluzione con il numero di byte più basso! Le spiegazioni della tua soluzione sono incoraggiate.
the input is a list of locations (e.g. nested list, list of tuples, space & newline separated, separate inputs, ect.)