プログラムは、ドットと改行が後に続くいくつかのスペースを印刷する必要があります。スペースの数は、0 <x <30で定義されたドットのx位置です。
すべての新しい行はターンです。プログラムは30ターン実行されます。プログラムはランダムなx位置から始まり、毎ターン、定義された領域内にとどまりながら、この位置を1ずつ左または右にランダムにシフトします。ターンごとに、ドットの位置を1ずつ変更する必要があります。
スコアは文字数です。すべての印刷行が正確に30文字(および改行)で構成されている場合、10のボーナスポイントを獲得できます。プログラムが定義された領域の中央にランダムに留まる傾向がある場合、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ます。