У вашій програмі потрібно роздрукувати ряд пробілів, а потім крапку та новий рядок. Кількість пробілів - це х положення вашої точки, визначене 0 <x <30
Кожен новий рядок - черга. Ваша програма працює на 30 оборотів. Ваша програма починається з випадкової позиції x і кожен виток зміщує цю позицію випадковим чином на 1 вліво або вправо, залишаючись всередині визначеної області. Кожен виток точки повинен змінювати свою позицію на 1.
Ваш бал - кількість символів. Ви отримуєте 10 бонусних балів, якщо кожен надрукований рядок складається з рівно 30 символів (і нового рядка). Ви отримуєте 50 бонусних балів, якщо, хоч і випадково, ваша програма, як правило, залишається посередині визначеної області.
Редагувати: 50 бонусних балів призначені для виведення точки до середини. Наприклад, це стосується, якщо крапка знаходиться на x = 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
.