Você está organizando uma caça ao tesouro para seus amigos. Para conduzir as coisas com mais facilidade, você deseja desenhar um mapa de todos os locais onde ocultou os objetos preciosos.
Entrada
0 0
É permitida qualquer forma de entrada que denote uma lista de pontos que consistem nas coordenadas x e y (não-negativas), sendo o canto superior esquerdo (Nota: Você também pode usar a indexação baseada em 1 na sua resposta, por favor, comente se você fizer isso. ) Exemplo:
1 2
3 0
0 1
Desafio
Sua função ou programa deve ser capaz de construir um mapa indicando cada local determinado, x
onde a marca é encontrada na linha y + 1 e na coluna x + 1 na saída. Locais não marcados são representados com um . O mapa também consiste em um quadro em que os cantos são
+
s, as linhas verticais são se |
as linhas horizontais são -
s. Sua solução deve gerar o menor quadro possível. Mapa para o exemplo de entrada fornecido acima:
+----+
| x|
|x |
| x |
+----+
Possíveis casos de teste
"0 0"
=>
+-+
|x|
+-+
"0 10
5 5
10 0"
=>
+-----------+
| x|
| |
| |
| |
| |
| x |
| |
| |
| |
| |
|x |
+-----------+
""
=>
++
++
"0 0
0 2
2 0"
=>
+---+
|x x|
| |
|x |
+---+
Obviamente, isso é código-golfe , o que significa que a solução com a menor contagem de bytes vence! Explicações da sua solução são incentivadas.
the input is a list of locations (e.g. nested list, list of tuples, space & newline separated, separate inputs, ect.)