ウィンドウ上に特定の点を描画するコードを記述したいと思います。私は3つの異なる点$(e1、e11)、(e2、e22)、(e3、e33)$を持っています。ランダムに1つを選択し、出力に応じて別の点を描きたい。Javaの "Math.random()"に関する問題
public class ChaosGame {
public static void main(String[] args) {
Window window = new Window("Chaos", 800, 800);
window.open();
int e1 = 420;
int e11 = 170;
int e2 = 230;
int e22 = 670;
int e3 = 700;
int e33 = 540;
while (window.isOpen()) {// ändere den Fensterinhalt
int pos1 = 100;
int pos2 = 300;
int i = (int) (Math.random() * 3);
if (i == 0 || i == 3) {
window.fillRect(pos1 + e1/2, pos2 + e11/2, 5, 5);
pos1 = e1/2;
pos2 = e11/2;
window.refresh();
} else if (i == 1) {
window.fillRect(pos1 + e2/2, pos2 + e22/2, 5, 5);
pos1 = e2/2;
pos2 = e22/2;
window.refresh();
} else {
window.fillRect(pos1 + e3/2, pos2 + e33/2, 5, 5);
pos1 = e3/2;
pos2 = e33/2;
window.refresh();
}
}
}
}
fillRectは新しいウィンドウでマイポイントを描画します。このプログラムを実行すると、ウィンドウを閉じるまで "while window.isOpen"に進むはずですが、2つのポイントしか表示されません。私はMath.random()と何かが間違っているかもしれないと思う。
矩形の座標を印刷します。それらをウィンドウの外に描画しているだけかもしれません。 –
私は窓の外にどのように描くことができますか?位置は、すべてが内部に描画されるように選択する必要があります – Cherry
'else'の' fillRect'を見てください。しかし、あなたがそれを修正しても、なぜあなたがこれをランダムな位置に描くと思うのかわかりません。 –