私は現在 AP Java コーディング クラスを受講していますが、興味深い問題に直面しています。
GObjects/GOval を使用して、グラフィックス ウィンドウでさまざまな半径とランダムな色を持つ 100 個のランダムな円を作成しようとしています。私は問題を切り分けようとしましたが、for ループと GOval (円) の作成の間の通信に何か問題があると確信しています。また、このコードを最初から数回やり直そうとしましたが、同じ問題が発生し続けています。具体的には、グラフィックス ウィンドウに 100 ではなく 1 つのランダムな円しか表示されないという問題があります。助けてください。私のコードは以下の通りです:
色をランダムに決定する変数 c を選択したことに注意してください。韻や理由はありません。ランダムな値を使用する必要がありました。
import java.awt.Color;
import acm.graphics.GOval;
import acm.program.GraphicsProgram;
import acm.util.RandomGenerator;
public class _100_Random_Circles extends GraphicsProgram
{
public _100_Random_Circles()
{
// Random Number Generator
RandomGenerator rgen = new RandomGenerator();
// Random X-coordinate.
int x = rgen.nextInt(1, 500);
// Random Y-coordinate.
int y = rgen.nextInt(1, 500);
// Random Circle width
int c = rgen.nextInt(1, 100);
// Random Circle height
int d = rgen.nextInt(1, 100);
for(int i = 0; i < 100; i++)
{
GOval circle = new GOval (x, y, c, d);
add(circle);
//Color the circles randomly
if(c <= 10)
{
circle.setFilled(true);
circle.setColor(Color.BLUE);
}
else if(c <= 20)
{
circle.setFilled(true);
circle.setColor(Color.RED);
}
else if(c <= 30)
{
circle.setFilled(true);
circle.setColor(Color.YELLOW);
}
else if(c <= 40)
{
circle.setFilled(true);
circle.setColor(Color.GREEN);
}
else if(c <= 50)
{
circle.setFilled(true);
circle.setColor(Color.ORANGE);
}
else if(c <= 60)
{
circle.setFilled(true);
circle.setColor(Color.BLACK);
}
else if(c <= 70)
{
circle.setFilled(true);
circle.setColor(Color.GRAY);
}
else if(c <= 80)
{
circle.setFilled(true);
circle.setColor(Color.PINK);
}
else if(c <= 90)
{
circle.setFilled(true);
circle.setColor(Color.MAGENTA);
}
else
{
circle.setFilled(true);
circle.setColor(Color.WHITE);
}
}
}
}