您的程序必须打印出许多空格,后跟一个点和一个换行符。空格数是点的x位置,定义为0 <x <30
每条新线都是转弯。您的程序运行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
。