编辑:这是一个不同的问题,如何在 Java 中生成特定范围内的随机整数?因为我要求解决方案使用方法
public int getRandomNumber(int start,int end)
{
int normal = Greenfoot.getRandomNumber(end-start+1);
return normal+start;
}
和
getRandomNumber(int, int)
下午好。我一直在用 Java 开发 Greenfoot 的一个项目,其中主角在 7x7 屏幕上,有 3 个硬币。我写了这段代码:
public class FirstLevel extends World
{
public int getRandomNumber(int start,int end)
{
int normal = Greenfoot.getRandomNumber(end-start+1);
return normal+start;
}
/**
* Constructor for objects of class FirstLevel.
*
*/
public FirstLevel()
{
// Create a new world with 600x400 cells with a cell size of 1x1 pixels.
super(9, 9, 60);
MainCharacter theDuckDude = new MainCharacter ();
addObject(theDuckDude, 4, 4);
coin coin1 = new coin();
coin coin2 = new coin();
coin coin3 = new coin();
addObject(coin1, getRandomNumber(1, 7), getRandomNumber(1, 7));
addObject(coin2, getRandomNumber(1, 7), getRandomNumber(1, 7));
addObject(coin3, getRandomNumber(1, 7), getRandomNumber(1, 7));
}
}
因此,如您所见,三个硬币和鸭子角色将随机出现在屏幕上。这是我的 theDuckDude 角色的代码片段:
Actor actor = getOneIntersectingObject(coin.class);
getWorld().removeObject(actor);
显然,这段代码显示当我的 theDuckDude 角色接触到硬币演员时,硬币被移除。正如你可能已经看到的,这带来了一个相当大的问题:如果 theDuckDude 和硬币演员在同一个方格上生成,游戏将无法正常运行:
那么,有没有一种方法可以生成这些随机整数,使用
public int getRandomNumber(int start,int end)
{
int normal = Greenfoot.getRandomNumber(end-start+1);
return normal+start;
}
和
getRandomNumber(1, 7)
方法,如何使它生成一个随机位置,将5 和 5 一起排除?