java - 如何使用随机化为循环中的单个迭代指定不同的对象参数?
问题描述
我目前有一个简单的 for 循环,其中包含 5 次迭代,可创建“砖”游戏对象,将它们添加到“砖”数组中,并将它们布置在我的 javaFX 场景的 x 轴上。目前,正如您在 Gameobj 参数上看到的那样;它们都是蓝色的。但是,我希望在循环的随机迭代中将其中一个砖块设置为黄色。这是我的代码:
public void initialiseGame()
{
bricks = new ArrayList<>();
for(int i=0; i<5; i++) {
GameObj brick = new GameObj(i*100, 100, BRICK_WIDTH, BRICK_HEIGHT, Color.BLUE);
brick.moveX(75);
brick.visible = true;
bricks.add(brick);
System.out.println("Model:: Create Brick =" + brick);
}
}
这是游戏对象方法设置:
public GameObj( int x, int y, int w, int h, Color c )
{
topX = x;
topY = y;
width = w;
height = h;
colour = c;
}
我怎样才能使用某种随机化器在一次迭代中改变砖块的颜色?
解决方案
在循环之前的范围内选择一个随机数,[0, 5)
如果循环索引与该数字匹配,则将颜色设置为黄色:
Random random = new Random();
int yellowBrick = random.nextInt(5);
for (int i = 0; i < 5; i++) {
Color color = i == yellowBrick ? Color.YELLOW : Color.BLUE;
GameObj brick = new GameObj(i*100, 100, BRICK_WIDTH, BRICK_HEIGHT, color);
brick.moveX(75);
brick.visible = true;
bricks.add(brick);
System.out.println("Model:: Create Brick =" + brick);
}
推荐阅读
- awesome-wm - 平铺规则并不总是强制执行
- angular - 即使服务被销毁,Angular 8 订阅仍然有效
- r - 如何将日期格式转换为数字以绘制密度曲线
- ios - UICollectionViewCompositionalLayout 不能使用与 UICollectionViewDiffableDataSource 相同的部分?
- ruby - Ruby web scraper 与浏览器结果不同
- php - 无法使我的数组排序函数返回正确的总数
- python - 使用凭据列表批量登录和执行任务
- c# - MongoDB .NET:一对多?多对多?
- woocommerce - 为收到的 woocommerce 电子邮件订单添加具有 ACF 值的占位符
- flutter - Flutter - 在 GridView 中禁用滚动,直到孩子填满高度