Entrada:
- Você obtém uma série de números inteiros (alimentados via stdin ou prompt).
- Cada par de números inteiros nesta série representa a LARGURA de um edifício [intervalo válido: 1..10] e HEIGHT [intervalo válido: 0..10]
- Suponha que a entrada seja bem formada.
Entrada de amostra (a segunda linha é apenas para fins de demonstração):
1 2 1 1 1 0 2 4 1 3 1 2 2 1 WHWHWHWHWHWHWH
Resultado da amostra correspondente:
______ / ______ / | | | | __ | | / __ / | __ | | | __ / __ / | | | | / __ / | | | | __ | | | | | ______ | | / __ / | | | | | / ______ / | | | | | _ | | | | | | | _o_ | _o_ | / __ | _o _____ | _o_ | _o_ | _o _____ | / ------------------------------------- - - - - - - - - - - - - - -------------------------------------
Regras:
Os prédios
- Um bloco de construção básico tem esta aparência (1 W, 1H)
__ / __ / | (o cubo base é emprestado do que está nesta pergunta: | | | http://stackoverflow.com/questions/1609702/code-golf-playing-cubes) | ___ | /
Nossa visão é (ahum) ~ 3D para que edifícios vizinhos possam esconder partes de outros. Os edifícios são 'logicamente' renderizados da esquerda para a direita.
O primeiro edifício é precedido por dois espaços à esquerda.
Você renderiza todas as construções aplicando WIDTH e HEIGHT nas dimensões do cubo base (veja a saída de amostra fornecida!). Para referência: número de caracteres da esquerda para a direita 'parede' (para um edifício com W> 1): (W * 5) - (W-1).
Edifícios com Altura> 0 têm UMA porta (que é representada pelo personagem
o
e está localizada a dois caracteres da parede 'esquerda' na linha 'inferior').
A estrada:
- A estrada é composta por três partes que chamaremos de 'superior', 'central' e 'inferior'.
- A parte 'superior' e a parte 'inferior' são idênticas, exceto pelo fato de que a parte 'superior' é precedida por dois espaços.
- A parte do meio é precedida por um espaço e consiste em uma repetição do seguinte padrão:
'-'
- O comprimento deve ser determinado pela largura total dos edifícios combinados: a parte mais à direita da estrada corresponde à posição da parede "direita" do "último" edifício.
Vencedores:
Isso é código-golfe! O vencedor é o competidor qualificado com a solução mais curta (por contagem de código-fonte). A origem deve consistir apenas em caracteres ASCII imprimíveis. Diverta-se!
Pontos de bônus imaginários para janelas (aleatórias), carros ou pedestres.
Sinta-se livre para comentar se as especificações não estiverem claras!
'- '
(com dois espaços)? Edit : Ah, os dois espaços não aparecem: P. Você pode exibir vários espaços usando o ASCII 255 (espaço sem quebra, ALT + 255 no numpad) ou copiando e colando do meu comentário aqui. Orr ... você em vez poderia apenas dizer que é uma repetição de ' - '
:)
but you must not enforce this
3)? Na IMO, qualquer suposição está disponível para ser explorada se aumentar sua pontuação. Portanto, posso escrever um código que só funcione se a largura total for menor que 80 se puder extrair uma contagem menor de caracteres. Por exemplo, gravando a saída em uma matriz de buffer de exibição com uma largura de 80, para travar em qualquer largura total mais alta. Se você deseja que qualquer largura seja suportada, não dê a hipótese - você não pode ter os dois: P