O desafio
Escreva um programa ou função que imprima estrelas! O programa receberá dois parâmetros por entrada padrão: tamanho da estrela e número de pontos da estrela. Uma estrela pode ter qualquer tamanho entre 0 e 10 e ter 3, 4 ou 5 pontos. Os parâmetros de entrada são separados por vírgula, por exemplo: 5,3
significa uma estrela de tamanho 5 com 3 pontos. As estrelas são compostas por asteriscos*
Considere que o programa receberá apenas entradas válidas.
As impressões devem estar espaçadas corretamente para que possamos ver estrelas bonitas na saída!
Explicações dos parâmetros
Pontos
É o número de armas contadas no asterisco central.
3 pontos estrelas :
*
*
*
* *
* *
Eles são compostos por um braço vertical e dois braços diagonais. A separação entre os braços diagonais é2*size-1
4 pontos estrelas
* *
* *
*
* *
* *
Eles têm a forma de um X e são compostos por duas linhas diagonais. A separação entre linhas é2*(size-1)+1
5 pontos estrelas
*
*
* * * * *
* *
* *
Eles são compostos por uma linha vertical e uma linha horizontal. Cada asterisco na linha horizontal é separado por um espaço. Eles também têm duas linhas diagonais, com uma separação entre si de2*(size-2)+1
Tamanho
Tamanho é o número de asteriscos que têm cada braço da estrela contando a partir do asterisco central (inclusive).
Estrelas tamanho 1 são compostas por um único asterisco
*
Exemplos de tamanho 2 estrelas
3 pontos
*
*
* *
4 pontos estrelas
* *
*
* *
5 pontos estrelas
*
* * *
* *
Você tem exemplos do tamanho 3 estrelas na explicação do parâmetro Points.
Critérios de vitória
O menor código vence. O código deve ser verificado com os seguintes parâmetros de entrada:3,2
3,3
4,2
4,3
5,2
5,3
Bônus
-25% de caracteres contam para a criação de um tamanho 6 apontado com os critérios explicados anteriormente (6 braços e o tamanho é o número de asteriscos contados no asterisco central). Pode ser qualquer formato que você quiser, respeitando as especificações. Um exemplo de uma estrela de tamanho 6 com tamanho 3:
*
*
* * * * *
* * *
* * *
As estrelas de 6 pontos devem ser verificadas com as seguintes entradas 6,2
6,3
.
Respostas:
Mathematica
80 7667 caracteresAlguns questionariam se isso é arte ASCII, mas não pude resistir.
Uso (definir o tamanho da fonte em 24 para fazer as estrelas parecerem grandes.)
Saída para os seguintes casos:
{{3, 2}, {3, 3}, {4, 2}, {4, 3},
{5, 2}, {5, 3}, {6, 2}, {6, 3},
{7, 4}, {8, 3}, {9, 2}, {12, 4}}
Como funciona
(a) A primeira estrela está na origem de um espaço de coordenadas. Vamos exibi-lo.
(b) Depois, mostraremos um ponto em {1,0}.
(c) Então 5 pontos de uma vez. Aplicamos uma função pura em cada par de coordenadas que a segue.
(d) Use Cos e Sin para determinar as coordenadas
(e) Coordenadas funcionam apenas no círculo unitário; 6 é o número de feixes de luz.
(f) Desenhe raios de 0 a 4 unidades.
fonte
Ruby, ASCII,
193pontos 142 (189 caracteres - bônus de 25%)Teste on-line
Eu acho que se qualifica para o bônus de estrela de 6 raios.
fonte
Mathematica ,
6564Minha opinião sobre o método de David:
Usar:
Os erros são produzidos por causa do uso de
=
e não:=
, e não é a maneira correta de fazer uma definição, mas funciona aqui.Se alguém pudesse usar pontos em vez de asteriscos, isso poderia ser escrito (52 caracteres):
fonte
fonte