Sua tarefa é criar um programa que identifique a forma da entrada. As formas a serem identificadas podem ser uma das seguintes:
Quadrado
Para ser identificada como um quadrado, a fonte deve ter linhas de todos os comprimentos iguais e o mesmo número de linhas que os caracteres por linha (caracteres de nova linha excluídos). Uma nova linha opcional à direita é aceitável.
$_='
$_="
$_"'
;say
Retângulo
Para ser identificada como um retângulo, a origem deve ter linhas de todo o mesmo comprimento, mas o número de linhas não corresponde ao número de caracteres por linha (caracteres de nova linha excluídos). Uma nova linha opcional à direita é aceitável. Isso pode ser horizontal ou vertical.
$_=
"no
t a
squ
are
";#
$_="but it
is still a
consistent
shape!";##
Triângulo
Para ser identificada como um triângulo, a origem deve começar com um caractere e cada linha subseqüente deve ter um caractere adicional (incluindo o último) ou, após a primeira linha, cada linha subseqüente deve ter um caractere a menos até o último, o que tem apenas um.
$
_=
"So
this
"."".
shape;
$_="or
even,
this
way
!!
"
Bagunça
Tudo o que não segue um formato consistente, conforme descrito acima, deve ser identificado como uma bagunça.
Regras
- Você pode retornar quaisquer quatro valores imprimíveis consistentes para identificar cada forma.
- Seu código-fonte também deve aderir a uma das formas acima (não, não é uma bagunça).
- Uma única nova linha à direita na sua origem é aceitável.
- Você pode assumir que a entrada não contém linhas em branco (incluindo novas linhas à direita), não está vazia e não consiste apenas em novas linhas.
- Todas as formas devem ter altura e largura>> 2, caso contrário, isso é definido como uma bagunça.
- As brechas padrão são proibidas.
- A solução mais curta em bytes, em cada idioma, vence.
All shapes must have a height and width of >= 2.
['abc','cfd','fgh']
?