Ваша программа должна распечатать несколько пробелов, за которыми следуют точка и символ новой строки. Количество пробелов - это позиция x вашей точки, определенная с 0 <x <30
Каждая новая линия - это поворот. Ваша программа работает за 30 ходов. Ваша программа начинается со случайной позиции x и каждый ход меняет эту позицию случайным образом на 1 влево или вправо, оставаясь в пределах определенной области. Каждый ход ваша точка должна менять свою позицию на 1.
Ваша оценка - это количество символов. Вы получаете 10 бонусных баллов, если каждая напечатанная строка состоит ровно из 30 символов (и новой строки). Вы получаете 50 бонусных баллов, если в случайном порядке ваша программа имеет тенденцию оставаться в середине определенной области.
Изменить: 50 бонусных очков предназначены, чтобы вытащить вашу точку к середине. Например, это применимо, если ваша точка находится в точке х = 20 и имеет шанс 66% идти влево и 33% идти вправо. Это должно быть независимо от начальной точки и должно происходить только путем динамического изменения процентного значения влево / вправо.
Никакой ввод не разрешен, вывод должен быть на исполняющей консоли!
Для лучшего понимания, вот читаемый пример в Java, который даст вам 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);
должно бытьint i = 1 + (int)(Math.random()*29);
вместо. Как есть, он генерирует число0 >= x > 30
вместо0 > x > 30
.