【发布时间】:2014-11-11 16:09:10
【问题描述】:
我开始制作一个有山羊的项目!是的山羊。 目前只有一个功能,当我点击一只山羊时,它会在 Random 位置创建另一只山羊。 我意识到有一种位置模式:
代码如下:
public class GameActivity extends Activity {
private int[] arrGoats = new int[5];
private RelativeLayout battlefield;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game);
battlefield = (RelativeLayout) findViewById(R.id.rel_battlefield);
arrGoats[0] = R.drawable.amarelo;
arrGoats[1] = R.drawable.azul;
arrGoats[2] = R.drawable.branco;
arrGoats[3] = R.drawable.verde;
arrGoats[4] = R.drawable.vermelho;
criarCabra(60, 100);
}
private void criarCabra(float x, float y) {
int cabraImg = arrGoats[new Random().nextInt(4)];
ImageView cabra = new ImageView(this);
cabra.setImageResource(cabraImg);
cabra.setX(x);
cabra.setY(y);
LayoutParams params = (LayoutParams) new LayoutParams(MarginLayoutParams.WRAP_CONTENT,
MarginLayoutParams.WRAP_CONTENT);
params.width = 150;
params.height = 120;
cabra.setLayoutParams(params);
cabra.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
criarCabra(new Random().nextInt(2000), new Random().nextInt(1000));
}
});
battlefield.addView(cabra);
}
}
尽管我使用Random().NextInt() 来定义山羊的位置,但我想知道为什么会创建这种模式。
我疯了吗?
【问题讨论】:
-
你说的模式是什么意思?
-
@blackbelt 看图,山羊的位置是对角线图案。
-
尝试在整个程序中使用 Random 的单个实例,而不是每次需要数字时都创建一个新实例。
-
@blackbelt 没有充分的理由创建这些立即成为垃圾回收候选对象的额外对象。
标签: android design-patterns random