Su programa tiene que imprimir varios espacios, seguidos de un punto y una nueva línea. El número de espacios es la posición x de su punto definido con 0 <x <30
Cada nueva línea es un turno. Su programa se ejecuta durante 30 turnos. Su programa comienza con una posición x aleatoria y cada giro cambia esta posición aleatoriamente en 1 a la izquierda o derecha, mientras permanece dentro del área definida. Cada vez que su punto tiene que cambiar su posición por 1.
Tu puntuación es la cantidad de caracteres. Obtiene 10 puntos de bonificación, si cada línea impresa consta de exactamente 30 caracteres (y nueva línea). Obtiene 50 puntos de bonificación si, si bien es aleatorio, su programa tiende a permanecer en el centro del área definida.
Editar: Los 50 puntos de bonificación están destinados a tirar de su punto hacia el medio. Por ejemplo, esto se aplica si su punto está en x = 20 y tiene una probabilidad de 66% de ir a la izquierda y 33% de ir a la derecha. Esto tiene que ser independiente del punto de partida y solo debe suceder alterando el valor porcentual de izquierda / derecha dinámicamente.
No se permite ninguna entrada de ningún tipo, ¡la salida debe estar en la consola de ejecución!
Para una mejor comprensión, aquí hay un ejemplo legible en Java, que le daría una puntuación 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);debería serint i = 1 + (int)(Math.random()*29);en su lugar. Como es, genera un número en0 >= x > 30lugar de0 > x > 30.