Il tuo programma deve stampare un numero di spazi, seguito da un punto e una nuova riga. Il numero di spazi è la posizione x del punto definito con 0 <x <30
Ogni nuova linea è una svolta. Il tuo programma dura 30 turni. Il programma inizia con una posizione x casuale e ogni giro sposta questa posizione in modo casuale di 1 a sinistra o a destra, rimanendo all'interno dell'area definita. Ogni turno il punto deve cambiare la sua posizione di 1.
Il tuo punteggio è il numero di caratteri. Ottieni 10 punti bonus, se ogni riga stampata è composta esattamente da 30 caratteri (e nuova riga). Ricevi 50 punti bonus se, se casuale, il tuo programma tende a rimanere al centro dell'area definita.
Modifica: i 50 punti bonus hanno lo scopo di tirare il punto al centro. Ad esempio, questo vale se il tuo punto è x = 20 e ha una probabilità del 66% di andare a sinistra e del 33% di andare a destra. Questo deve essere indipendente dal punto di partenza e dovrebbe avvenire solo modificando dinamicamente il valore percentuale di sinistra / destra.
Nessun input consentito, l'output deve essere sulla console di esecuzione!
Per una migliore comprensione, ecco un esempio leggibile in Java, che ti darebbe un punteggio di 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);dovrebbe essereint i = 1 + (int)(Math.random()*29);invece. Così com'è, genera un numero0 >= x > 30anziché0 > x > 30.