Supõe-se que este seja um desafio para o código de golfe no extremo mais simples do espectro. Mas achei que poderia ser bom trazer aqui algumas micro-otimizações.
Existem três tipos básicos de conectores DVI : DVI-A (analógico), DVI-D (digital) e DVI-I (integrado). Além disso, existem versões de link único e link duplo dos conectores DVI-D e DVI-I. Cada um desses cinco conectores diferentes usa um conjunto diferente de pinos.
Dado um dos A
, D1
, D2
, I1
, I2
como um identificador para o tipo de conector, imprimir a representação ASCII correspondente de pinos do conector:
A:
# # # # # # #
===== # # #
# # # # # #
D1:
# # # # # #
===== # # # # # #
# # # # # #
D2:
# # # # # # # #
===== # # # # # # # #
# # # # # # # #
I1:
# # # # # # # #
===== # # # # # #
# # # # # # # #
I2:
# # # # # # # # # #
===== # # # # # # # #
# # # # # # # # # #
(As X:
linhas não fazem parte da saída, você deve imprimir apenas 3 linhas.)
Você pode escrever um programa ou função, recebendo entradas via STDIN, ARGV ou argumento de função. A saída deve ser impressa em STDOUT, com uma alimentação de linha móvel opcional.
Você pode ou não incluir espaços à direita na segunda linha do A
conector. Você não deve usar espaços iniciais ou finais adicionais em nenhum outro lugar.
Isso é código de golfe, então a resposta mais curta (em bytes) vence.
fonte
"I1"
vez deI1
?Respostas:
CJam,
7970 bytesInspirado na resposta de nutki . Isso também garante que não haja espaços em branco à direita (exceto a segunda linha)
Use este link para copiar o código, pois o SE remove caracteres não imprimíveis.
Existem 5 caracteres no intervalo ASCII não imprimível, mas dentro de um byte (código ASCII 255)
Como funciona :
Experimente online aqui
fonte
Perl -
10091 (incluindo 1 sinalizador)Usa as idéias de nutki de usar
-p
e reduzir espaços duplos. Eliminação também simplificada dos espaços à direita.A entrada vem do stdin e deve conter apenas o tipo de conector sem nova linha final.
Anterior:
Aceita um argumento de linha de comando. Ungolfed:
fonte
$x=shift|" qb"
e substituindo 3 ocorrências de espaço duplo porb
no modelo. Também alterar o processamento de entrada para '-p' fornece 7 extras (menos o sinalizador):$x=$_|""
e não há necessidade de finalsay
.x
para#
. Mas a segunda linha ainda tem espaços à direita em todos os casos. PoisA
, o espaço se estende além da final#
das outras linhas (que eu suponho que seja tecnicamente permitido). Mas, para aI1
,I2
, etc. casos, ainda há um espaço à direita que precisa ser cuidado. Acho que posso jogar mais alguns personagens com isso.Python, 168 caracteres
Parece ser uma nova abordagem. Eu tenho a string:
Substituo o
G
,H
e com2
base na entrada.fonte
J,
Minificado153 121119 caracteresUma terceira abordagem: agrupe todos os
'e
Desminificado#
' em um número inteiro enorme como bits. Adicione os=
depois. Ainda assim, não utiliza a simetria de muitas das variantes de conectores.Minificado (153)
Também como uma função. Este usa uma codificação binária de comprimento variável, calculando as binárias e separando por zeros. 0 significa uma linha
, 1 significa
Ungolfed#
, 2 significa=
, 3 significa nova linha e 4 significa separar as cinco cadeias uma da outra.fonte
Marbelous, 281 bytes / caracteres
Minificado:
Isso leva
D1
,D2
,I1
,I2
ouA
a partir de STDIN. Trailing newlines na entrada é opcional. A saída é para STDOUT.Este programa chama sub-quadros que imprimem partes de conectores, preenchendo
#
s ou deixando espaços, dependendo das entradas.Tente esta resposta aqui ; placas cilíndricas são necessárias.
com Comentários:
fonte
Perl 5: 105 (incluindo 1 sinalizador)
Mais uma solução Perl. Usa stdin para o parâmetro
fonte
GNU sed, 116 bytes
Saída:
fonte
J,
Minificado198194157caracteresImplementado como uma função. Observe que a função é um trem, o que significa que seria necessário cercá-la entre parênteses ou atribuí-la a um nome para usá-la (talvez eu deva contar os parênteses como parte da função, mesmo que tecnicamente não sejam).
UngolfedA idéia é armazenar a parte comum da sequência separadamente dos caracteres que diferem entre os tipos de conectores.
S1
armazena os caracteres únicos eS2
atua como um padrãox
, atuando como espaços reservados para preencher.fonte
Python -
167 166 164 161159fonte
JavaScript (ES6) 178
186Editar Com 7 blocos básicos, use a base 7 da
maneira correta, usando a construção de strings com replace e 7 blocos de construção.
Saída para stdout usando alerta conforme solicitado pelo OP.
Agora vou tentar algumas micro-otimizações ...
Teste no console do FireFox / FireBug - removendo 'alerta' para simplificar o teste
Saída
fonte
APL (115)
Teste:
fonte
JavScript ES6, 186 bytes
Mostrar snippet de código
O código é rápido e sujo, mas faz o trabalho. Principalmente, os
#
espaços e os espaços são colocados em binário e depois na base 36. Estou procurando uma solução mais elegante e, esperançosamente, mais curta.fonte
Perl 5-150 (149 + 1 para
n
)Golfe:
Entrada de STDIN, saída para STDOUT. Funciona preenchendo determinados caracteres com
#
oudependendo da entrada.
Ungolfed:
fonte