我的任务是创建一个程序,该程序将引导雀科机器人在规定的时间内随机移动,同时计算它在移动过程中检测到的物体数量并将此数量返回到当时显示。
我可以让机器人随机移动,我可以让它计算它检测到的物体 - 但不能同时计算。
主:
int millsec = 5000;
int obstacleOccur = finchRandom(millsec);
System.out.println(obstacleOccur);
方法:
static public int finchRandom(int x)
{
Finch myf = new Finch();
Random rand = new Random();
int obs = 0;
long time = System.currentTimeMillis()+x;
while(time - System.currentTimeMillis() > 0)
{
if (myf.isObstacle())
{
obs++; //this counts the obstacles
System.out.println("Obstacle");
} //below activates the wheels to move randomly,
//the function is setWheelVelocities(leftWheel,rightWheel,duration)
myf.setWheelVelocities(rand.nextInt(150)-75,rand.nextInt(150)-75,rand.nextInt(x/2));
}
return obs; //returns the count of obstacles
}
我认为这是因为在雀科机器人四处移动时,不能运行计数障碍的if语句和增量。这有什么办法吗?
提前致谢。
答案 0 :(得分:1)
答案是多线程编程,你的工作是弄清楚如何使用THread或Runnable或lambda表达式来做到这一点。因为任何给定的线程一次只能做一件事,你需要一次做至少两件事。