如何随机化Java字符串?

如何随机化Java字符串?,java,eclipse,Java,Eclipse,所以我开始编写一个小游戏,需要“敌人”从两点出发 这是我的敌人产卵代码 public void createEnemy(int enemy_count){ for(int i = 0; i < enemy_count; i++){ addEntity(new Enemy((200), -10, tex, this, game)); } } 好吧,我很确定我也要把它随机化,这样它才能起作用?思想?(x需要是随机的450或200) 谢谢, 最大值随机选择一个位

所以我开始编写一个小游戏,需要“敌人”从两点出发

这是我的敌人产卵代码

public void createEnemy(int enemy_count){
    for(int i = 0; i < enemy_count; i++){
        addEntity(new Enemy((200), -10, tex, this, game));
    }
}
好吧,我很确定我也要把它随机化,这样它才能起作用?思想?(x需要是随机的450或200)

谢谢,
最大值

随机选择一个位置:

Random random = new Random(); // Somewhere at the top of your code
addEntity(new Enemy((random.nextBoolean() ? 200 : 450), -10, tex, this, game));
交替位置,不依赖循环计数器变量。如果你在循环之外繁殖敌人,这也很有用。(例如,其他类型敌人的其他循环。)


如果希望每隔一次迭代在200和450之间交替进行,请执行以下操作:

addEntity(new Enemy((i % 2 == 1 ? 200 : 450), -10, tex, this, game));
这使用模运算符
%
确定循环计数器
i
是奇数还是偶数,并使用三值运算符选择200或450

如果要伪随机选择其中一个,可以使用
Math.Random()
,如@Chrisky在评论中所述:

addEntity(new Enemy((Math.Random() > 0.5 ? 200 : 450), -10, tex, this, game));
编辑:您可以对添加到问题中的第二块代码应用相同的模式

if (y > (Game.HEIGHT * Game.SCALE)) {
    x = (Math.Random() > 0.5 ? 200 : 450);
    y = -10;
}

如果你想让怪物每次在一个不确定的随机位置产卵,你应该生成一个随机值,在你的情况下,你只有两个随机点,所以你想要0或1

创建随机数(0或1)后,请检查随机数的值,然后将其转换为250或400。这可以使用关联数组或(更简单的)if-else语句来完成

见:


另外,你应该知道没有真正随机的东西。有些人坚持称之为psuedorandom,但我觉得这有点迂腐

这个问题是如何涉及到
字符串的使用的?在我看来,您希望这个代码在每一次迭代中交替使用200到450。我不知道随机化或字符串是怎么回事。
addEntity(新敌人((Math.Random()>0.5?200:450),-10,tex,这个,游戏))也许?我甚至不知道随机化在哪里起作用。候补!=随机化。我在标题中看到字符串,但在发布的代码中没有字符串。啊,好的,我明白了。谢谢你的评论,但是我想我必须对编辑下的零件进行随机排列,因为它可以正常工作。@user3542953你可以使用相同的模式。请查看我编辑的答案,并单击复选标记接受我的答案,如果它对您有帮助:)非常感谢,最后一件事,我将如何随机此--//对于速度控制私有int speed=(3);要在1和8之间选择一个数字?请参阅此问题,特别是第一个答案,了解如何从
Math.Random()
:非常感谢您的帮助!你可以告诉我,我对java还很陌生,但我真的很想为手机游戏编写代码!你有什么有用的学习材料吗?再次感谢你的帮助,节省了我的时间,Max。
addEntity(new Enemy((Math.Random() > 0.5 ? 200 : 450), -10, tex, this, game));
if (y > (Game.HEIGHT * Game.SCALE)) {
    x = (Math.Random() > 0.5 ? 200 : 450);
    y = -10;
}