Votre programme doit imprimer un certain nombre d'espaces, suivis d'un point et d'une nouvelle ligne. Le nombre d'espaces est la position x de votre point définie avec 0 <x <30
Chaque nouvelle ligne est un tour. Votre programme dure 30 tours. Votre programme commence avec une position x aléatoire et chaque tour décale cette position de façon aléatoire de 1 vers la gauche ou la droite, tout en restant dans la zone définie. Chaque tour, votre point doit changer sa position de 1.
Votre score est le nombre de caractères. Vous obtenez 10 points bonus, si chaque ligne imprimée se compose exactement de 30 caractères (et de nouvelle ligne). Vous obtenez 50 points bonus si, tout en étant aléatoire, votre programme a tendance à rester au milieu de la zone définie.
Edit: Les 50 points bonus sont destinés à tirer votre point au milieu. Par exemple, cela s'applique si votre point est à x = 20 et a une chance de 66% d'aller à gauche et de 33% à droite. Cela doit être indépendant du point de départ et ne doit se produire qu'en modifiant dynamiquement la valeur en pourcentage de gauche / droite.
Aucune entrée d'aucune sorte autorisée, la sortie doit se faire sur la console d'exécution!
Pour une meilleure compréhension, voici un exemple lisible en java, qui vous donnerait un score 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);devrait être à laint i = 1 + (int)(Math.random()*29);place. En l'état, il génère un nombre0 >= x > 30au lieu de0 > x > 30.