好的,所以我的任务是创造一些能够摆脱困境的机器人。即墙上有一个洞,他们必须找到出路,无论它们在哪里产卵。
我创建了一个循环,可以制作10个不同的机器人,但它们都在同一个地方产生:
EscapeBot[] Karel = new EscapeBot[numOfRobots];
for (int i = 0; i < numOfRobots; i++) {
Karel[i] = new EscapeBot(London, 1, 1, Direction.NORTH);
Karel[i].escapeRoom();
我应该声明整数,然后在坐标和方向的for循环中使用math.random吗?
答案 0 :(得分:3)
我不能肯定地说没有看到你的EscapeBot
课程,但这可能是你想要的,例如。
Random rand = new Random();
new EscapeBot(London, rand.nextInt(max_x - 1) + 1, rand.nextInt(max_y - 1) + 1, Direction.NORTH);
其中max_x
是最大x坐标,max_y是最大y坐标,假设基于1的索引(如果使用基于0的索引,则删除-1和+1部分)。您可能还需要一系列方向,例如
Direction[] directions = new Direction { Direction.NORTH, Direction.SOUTH, .. }
以便您的EscapeBot
new EscapeBot(London, rand.nextInt(max_x - 1) + 1, rand.nextInt(max_y - 1) + 1, directions[rand.nextInt(directions.length)]);
答案 1 :(得分:1)
如何做到这一点(如果你想让机器人能够产生annywhere,只需用你的地图尺寸替换产卵变量):
for (int i = 0; i < numOfRobots; i++) {
Karel[i] = new EscapeBot(London,
SPAWN_X + SPAWN_LENGTH * Math.random(),
SPAWN_Y + SPAWN_WIDTH * Math.random(),
Direction.NORTH);
Karel[i].escapeRoom();
}