Seu programa precisa imprimir vários espaços, seguidos por um ponto e uma nova linha. O número de espaços é a posição x do seu ponto definido com 0 <x <30
Cada nova linha é uma vez. Seu programa é executado por 30 turnos. Seu programa começa com uma posição x aleatória e a cada turno muda essa posição aleatoriamente em 1 para a esquerda ou direita, enquanto permanece dentro da área definida. A cada volta, seu ponto deve mudar sua posição em 1.
Sua pontuação é o número de caracteres. Você ganha 10 pontos de bônus, se cada linha impressa tiver exatamente 30 caracteres (e nova linha). Você ganha 50 pontos de bônus, se aleatoriamente, seu programa tende a permanecer no meio da área definida.
Editar: Os 50 pontos de bônus destinam-se a puxar o seu ponto para o meio. Por exemplo, isso se aplica se o seu ponto estiver em x = 20 e tiver uma chance de 66% para a esquerda e 33% para a direita. Isso deve ser independente do ponto de partida e só deve ocorrer alterando o valor percentual de esquerda / direita dinamicamente.
Nenhuma entrada de qualquer tipo é permitida; a saída deve estar no console de execução!
Para uma melhor compreensão, aqui está um exemplo legível em java, que lhe daria uma pontuação de 723:
public class DotJumper{
public static void main(String[] args){
int i = (int)(Math.random()*30);
int max = 29;
int step = 1;
int count = 30;
while(count>0){
if(i<=1){
i+=step;
}else if(i>=max){
i-=step;
}else{
if(Math.random() > 0.5){
i+=step;
}else{
i-=step;
}
}
print(i);
count--;
}
}
public static void print(int i){
while(i>0){
System.out.print(' ');
i--;
}
System.out.println('.');
}
}
int i = (int)(Math.random()*30);
deveria ser oint i = 1 + (int)(Math.random()*29);
contrário. Como é, gera um número em0 >= x > 30
vez de0 > x > 30
.