Sua tarefa é criar um programa que adicione números aleatórios a somas anteriores no confronto final de corridas de números.
Cada corredor (coluna) começa em 0 e adiciona 1 ou 0 à soma anterior em cada etapa da corrida até que todos os atletas atinjam a pontuação necessária para vencer. O 1 ou 0 deve ser escolhido aleatoriamente (a definição padrão de aleatório pode ser encontrada aqui ). A saída mostrará o resultado da corrida, com cada coluna representando um corredor, neste formato:
>> racers:5,score needed:2
0 0 0 0 0 # all racers start at 0
+ + + + + # add
1 0 0 0 1 # random 1 or 0
= = = = = # equals
1 0 0 0 1 # sum
+ + + + +
0 0 0 0 1
= = = = =
1 0 0 0 2 # winner!
+ + + +
1 1 1 1
= = = =
2 1 1 1
+ + +
1 1 1
= = =
2 2 2 # losers
Nota: somente os números, + e = precisam ser incluídos na saída.
Entrada
Seu programa aceitará os dois parâmetros a seguir como entrada:
- o número de corredores (colunas), que deve ser maior que dois
- a pontuação necessária para vencer, que deve ser maior que um
Isso é código-golfe - o programa com menos bytes vence.
Editar: há uma pontuação máxima não aplicável de 9 - isso é para preservar a integridade da coluna. Além disso, os espaços entre as colunas podem ser omitidos na saída.