Dado um número inteiro positivo N ("viralidade"), seu programa deve criar um desenho de uma árvore com arte ASCII com dois ramos de comprimento N estendendo-se para baixo e / ou para a direita a partir do canto superior esquerdo.
A direção adotada por cada ramo após o primeiro asterisco pode ser para a direita ou para baixo, e essa escolha deve ser feita aleatoriamente 1 a cada passo seguinte.
Por exemplo, dada uma entrada 5, a saída pode se parecer com:
***
* ***
**
**
Os dois ramos têm permissão para tocar (estar nas células adjacentes), mas não se sobrepõem (estar na mesma célula), portanto, o seguinte não seria permitido:
***
* *
*****
*
*
Exemplos
Para entrada 1
, a única saída possível é:
**
*
(Isso estará presente em todas as saídas válidas, pois ter as duas ramificações no mesmo caminho causaria a sobreposição.)
Possíveis saídas para uma entrada de 3
incluem:
***
* *
**
**
***
*
*
Para entrada 7
:
****
* **
* **
*
***
*
Para entrada 10
:
****
* *
*********
*
*****
Isso é código-golfe , então a resposta mais curta e válida (em bytes) vence.
1. Isso deve ser aleatório uniformemente (ou seja, 50/50 de chance para cada direção) ou o mais próximo possível de ser aleatório uniformemente possível no hardware normal.
0
s e 1
s em vez de espaços e asteriscos?