O desafio é duplo:
Faça um programa que construa uma porta. ASCII, HTML ou outro
Torne a porta funcional. Abre e fecha
Pode ser aberto através de entrada ou interação!
- Porta não funcional +5 pontos.
- Apenas uma porta aberta +10 pontos.
- Porta interativa +15 pontos.
- Porta chique +20 pontos. Isso significa rotativo, dobrável etc
- +20 pontos animados.
- <100 caracteres +50 pontos.
- -100 pontos para usar um programa projetado especificamente para desenho ou animação.
Se você tiver sugestões de critérios, deixe-as nos comentários.
Exemplo de porta aberta não funcional:
<?php
$idiots_in_room=true;
if($idiots_in_room)
{
$count=20;
$count2=7;
for($i=0;$i<$count;$i++)
{
if($i==0)
{
echo str_repeat("-",10);
if($i==0){echo ".";}
echo "\n";
}
elseif($i==9)
{
echo str_repeat("-",10);
echo str_repeat("Â ",7)."o"."|";
echo "\n";
}
elseif($i<=9)
{
echo str_repeat("-",1).str_repeat("Â ",8).str_repeat("-",1);
echo ($i<5) ? str_repeat("Â ",$i*2)."\\" : str_repeat("Â ",8)."|";
echo "\n";
}
elseif($i<=14)
{
if($i>9){echo str_repeat("Â ",$i)."\\";}
echo str_repeat("Â ",$count2--)."|";
echo "\n";
}
}
}
Saída de exemplo:
----------.
- - \
- - \
- - \
- - \
- - |
- - |
- - |
- - |
---------- o|
\ |
\ |
\ |
\ |
\ |
code-challenge
Horizonte de eventos
fonte
fonte
Respostas:
JavaScript, 4380 caracteres, 65 pontos (?)
ASCII? Verifica. HTML? Verifica. É uma porta? Verifica. Porta que pode ser aberta? Verifica. Interativo? Verifica. Chique? Portas duplas com dobradiças bem posicionadas, espero que isso conte. Animado? Verifica. Menos de 100 caracteres? Ha. Não utiliza instalações destinadas ao desenho? Verifica.
Demonstração ao vivo.(Nota: Nos meus testes com o Firefox, clicar nas portas mais de uma vez não funciona - por algum motivo, o manipulador de eventos não é acionado novamente e estou confuso sobre o motivo; apontar o que fiz de errado seria bem-vindo. No entanto, convém executar isso no Chrome de qualquer maneira para obter um desempenho decente em JS.)
Quando fechadas, as portas ficam assim:
fonte
HTML e CSS3, 55 pontos
Porta chique, interativa e animada tem 55 pontos, eu acho.
Sim, isso se abre como qualquer outra porta, mas se uma porta deslizante conta como sofisticada, por que não uma porta rotativa? Se um rotativo não é chique, bem, uma porta deslizante não é problema
:)
Uma demonstração está disponível em http://result.dabblet.com/gist/3132160/ac475112dbba493d2dd7d98493d4f4ceaa209a7c . Clique na maçaneta da porta para abrir e fechar. Nenhum JavaScript envolvido; é apenas a mágica do CSS3.
fonte
Mathematica 271 caracteres
As portas duplas
r
)h
ew
).O código é baseado em um programa de Sándor Kabal.
fonte
Python - 65 pontos, 86 caracteres
Interativo e menos de 100 caracteres.
Aguarda entrada e mostra a porta . A entrada válida é "aberto" e "fechado" e "tchau".
fonte
Mathematica 127 caracteres
Esta é uma implementação mais simplificada do que a que enviei anteriormente. Tem uma única porta. A porta única
o
)No entanto, utiliza uma altura e largura fixas da porta.
fonte