임의의 숫자를 만들고 9 개의 직사각형을 만들고 싶지만 그 중 하나는 다른 색상으로 표시되며 다른 색상은 임의의 숫자에 따라 나옵니다. 코드를 작성했지만 코드가 너무 길면 어떻게하면 더 짧게 만들 수 있습니까?무작위 및 그래픽 너무 긴 코드
public void paint(Graphics g) {
rand = new Random();
n = rand.nextInt(9) + 1;
if (n == 1) {
g.setColor(Color.LIGHT_GRAY);
rec1 = new Rectangle(10, 130, 50, 50);
g.fillRect((int) rec1.getX(), (int) rec1.getY(),
(int) rec1.getWidth(), (int) rec1.getHeight());
g.setColor(Color.DARK_GRAY);
rec2 = new Rectangle(70, 130, 50, 50);
g.fillRect((int) rec2.getX(), (int) rec2.getY(),
(int) rec2.getWidth(), (int) rec2.getHeight());
rec3 = new Rectangle(130, 130, 50, 50);
g.fillRect((int) rec3.getX(), (int) rec3.getY(),
(int) rec3.getWidth(), (int) rec3.getHeight());
rec4 = new Rectangle(10, 70, 50, 50);
g.fillRect((int) rec4.getX(), (int) rec4.getY(),
(int) rec4.getWidth(), (int) rec4.getHeight());
rec5 = new Rectangle(70, 70, 50, 50);
g.fillRect((int) rec5.getX(), (int) rec5.getY(),
(int) rec5.getWidth(), (int) rec5.getHeight());
rec6 = new Rectangle(130, 70, 50, 50);
g.fillRect((int) rec6.getX(), (int) rec6.getY(),
(int) rec6.getWidth(), (int) rec6.getHeight());
rec7 = new Rectangle(10, 10, 50, 50);
g.fillRect((int) rec7.getX(), (int) rec7.getY(),
(int) rec7.getWidth(), (int) rec7.getHeight());
rec8 = new Rectangle(70, 10, 50, 50);
g.fillRect((int) rec8.getX(), (int) rec8.getY(),
(int) rec8.getWidth(), (int) rec8.getHeight());
rec9 = new Rectangle(130, 10, 50, 50);
g.fillRect((int) rec9.getX(), (int) rec9.getY(),
(int) rec9.getWidth(), (int) rec9.getHeight());
} else if (n == 2) {
rec1 = new Rectangle(10, 130, 50, 50);
g.fillRect((int) rec1.getX(), (int) rec1.getY(),
(int) rec1.getWidth(), (int) rec1.getHeight());
g.setColor(Color.LIGHT_GRAY);
rec2 = new Rectangle(70, 130, 50, 50);
g.fillRect((int) rec2.getX(), (int) rec2.getY(),
(int) rec2.getWidth(), (int) rec2.getHeight());
g.setColor(Color.DARK_GRAY);
rec3 = new Rectangle(130, 130, 50, 50);
g.fillRect((int) rec3.getX(), (int) rec3.getY(),
(int) rec3.getWidth(), (int) rec3.getHeight());
rec4 = new Rectangle(10, 70, 50, 50);
g.fillRect((int) rec4.getX(), (int) rec4.getY(),
(int) rec4.getWidth(), (int) rec4.getHeight());
rec5 = new Rectangle(70, 70, 50, 50);
g.fillRect((int) rec5.getX(), (int) rec5.getY(),
(int) rec5.getWidth(), (int) rec5.getHeight());
rec6 = new Rectangle(130, 70, 50, 50);
g.fillRect((int) rec6.getX(), (int) rec6.getY(),
(int) rec6.getWidth(), (int) rec6.getHeight());
rec7 = new Rectangle(10, 10, 50, 50);
g.fillRect((int) rec7.getX(), (int) rec7.getY(),
(int) rec7.getWidth(), (int) rec7.getHeight());
rec8 = new Rectangle(70, 10, 50, 50);
g.fillRect((int) rec8.getX(), (int) rec8.getY(),
(int) rec8.getWidth(), (int) rec8.getHeight());
rec9 = new Rectangle(130, 10, 50, 50);
g.fillRect((int) rec9.getX(), (int) rec9.getY(),
(int) rec9.getWidth(), (int) rec9.getHeight());
} else if (n == 3) {
rec1 = new Rectangle(10, 130, 50, 50);
g.fillRect((int) rec1.getX(), (int) rec1.getY(),
(int) rec1.getWidth(), (int) rec1.getHeight());
rec2 = new Rectangle(70, 130, 50, 50);
g.fillRect((int) rec2.getX(), (int) rec2.getY(),
(int) rec2.getWidth(), (int) rec2.getHeight());
g.setColor(Color.LIGHT_GRAY);
rec3 = new Rectangle(130, 130, 50, 50);
g.fillRect((int) rec3.getX(), (int) rec3.getY(),
(int) rec3.getWidth(), (int) rec3.getHeight());
g.setColor(Color.DARK_GRAY);
rec4 = new Rectangle(10, 70, 50, 50);
g.fillRect((int) rec4.getX(), (int) rec4.getY(),
(int) rec4.getWidth(), (int) rec4.getHeight());
rec5 = new Rectangle(70, 70, 50, 50);
g.fillRect((int) rec5.getX(), (int) rec5.getY(),
(int) rec5.getWidth(), (int) rec5.getHeight());
rec6 = new Rectangle(130, 70, 50, 50);
g.fillRect((int) rec6.getX(), (int) rec6.getY(),
(int) rec6.getWidth(), (int) rec6.getHeight());
rec7 = new Rectangle(10, 10, 50, 50);
g.fillRect((int) rec7.getX(), (int) rec7.getY(),
(int) rec7.getWidth(), (int) rec7.getHeight());
rec8 = new Rectangle(70, 10, 50, 50);
g.fillRect((int) rec8.getX(), (int) rec8.getY(),
(int) rec8.getWidth(), (int) rec8.getHeight());
rec9 = new Rectangle(130, 10, 50, 50);
g.fillRect((int) rec9.getX(), (int) rec9.getY(),
(int) rec9.getWidth(), (int) rec9.getHeight());
} else if (n == 4) {
rec1 = new Rectangle(10, 130, 50, 50);
g.fillRect((int) rec1.getX(), (int) rec1.getY(),
(int) rec1.getWidth(), (int) rec1.getHeight());
rec2 = new Rectangle(70, 130, 50, 50);
g.fillRect((int) rec2.getX(), (int) rec2.getY(),
(int) rec2.getWidth(), (int) rec2.getHeight());
rec3 = new Rectangle(130, 130, 50, 50);
g.fillRect((int) rec3.getX(), (int) rec3.getY(),
(int) rec3.getWidth(), (int) rec3.getHeight());
g.setColor(Color.LIGHT_GRAY);
rec4 = new Rectangle(10, 70, 50, 50);
g.fillRect((int) rec4.getX(), (int) rec4.getY(),
(int) rec4.getWidth(), (int) rec4.getHeight());
g.setColor(Color.DARK_GRAY);
rec5 = new Rectangle(70, 70, 50, 50);
g.fillRect((int) rec5.getX(), (int) rec5.getY(),
(int) rec5.getWidth(), (int) rec5.getHeight());
rec6 = new Rectangle(130, 70, 50, 50);
g.fillRect((int) rec6.getX(), (int) rec6.getY(),
(int) rec6.getWidth(), (int) rec6.getHeight());
rec7 = new Rectangle(10, 10, 50, 50);
g.fillRect((int) rec7.getX(), (int) rec7.getY(),
(int) rec7.getWidth(), (int) rec7.getHeight());
rec8 = new Rectangle(70, 10, 50, 50);
g.fillRect((int) rec8.getX(), (int) rec8.getY(),
(int) rec8.getWidth(), (int) rec8.getHeight());
rec9 = new Rectangle(130, 10, 50, 50);
g.fillRect((int) rec9.getX(), (int) rec9.getY(),
(int) rec9.getWidth(), (int) rec9.getHeight());
} else if (n == 5) {
rec1 = new Rectangle(10, 130, 50, 50);
g.fillRect((int) rec1.getX(), (int) rec1.getY(),
(int) rec1.getWidth(), (int) rec1.getHeight());
rec2 = new Rectangle(70, 130, 50, 50);
g.fillRect((int) rec2.getX(), (int) rec2.getY(),
(int) rec2.getWidth(), (int) rec2.getHeight());
rec3 = new Rectangle(130, 130, 50, 50);
g.fillRect((int) rec3.getX(), (int) rec3.getY(),
(int) rec3.getWidth(), (int) rec3.getHeight());
rec4 = new Rectangle(10, 70, 50, 50);
g.fillRect((int) rec4.getX(), (int) rec4.getY(),
(int) rec4.getWidth(), (int) rec4.getHeight());
g.setColor(Color.LIGHT_GRAY);
rec5 = new Rectangle(70, 70, 50, 50);
g.fillRect((int) rec5.getX(), (int) rec5.getY(),
(int) rec5.getWidth(), (int) rec5.getHeight());
g.setColor(Color.DARK_GRAY);
rec6 = new Rectangle(130, 70, 50, 50);
g.fillRect((int) rec6.getX(), (int) rec6.getY(),
(int) rec6.getWidth(), (int) rec6.getHeight());
rec7 = new Rectangle(10, 10, 50, 50);
g.fillRect((int) rec7.getX(), (int) rec7.getY(),
(int) rec7.getWidth(), (int) rec7.getHeight());
rec8 = new Rectangle(70, 10, 50, 50);
g.fillRect((int) rec8.getX(), (int) rec8.getY(),
(int) rec8.getWidth(), (int) rec8.getHeight());
rec9 = new Rectangle(130, 10, 50, 50);
g.fillRect((int) rec9.getX(), (int) rec9.getY(),
(int) rec9.getWidth(), (int) rec9.getHeight());
} else if (n == 6) {
rec1 = new Rectangle(10, 130, 50, 50);
g.fillRect((int) rec1.getX(), (int) rec1.getY(),
(int) rec1.getWidth(), (int) rec1.getHeight());
rec2 = new Rectangle(70, 130, 50, 50);
g.fillRect((int) rec2.getX(), (int) rec2.getY(),
(int) rec2.getWidth(), (int) rec2.getHeight());
rec3 = new Rectangle(130, 130, 50, 50);
g.fillRect((int) rec3.getX(), (int) rec3.getY(),
(int) rec3.getWidth(), (int) rec3.getHeight());
rec4 = new Rectangle(10, 70, 50, 50);
g.fillRect((int) rec4.getX(), (int) rec4.getY(),
(int) rec4.getWidth(), (int) rec4.getHeight());
rec5 = new Rectangle(70, 70, 50, 50);
g.fillRect((int) rec5.getX(), (int) rec5.getY(),
(int) rec5.getWidth(), (int) rec5.getHeight());
g.setColor(Color.LIGHT_GRAY);
rec6 = new Rectangle(130, 70, 50, 50);
g.fillRect((int) rec6.getX(), (int) rec6.getY(),
(int) rec6.getWidth(), (int) rec6.getHeight());
g.setColor(Color.DARK_GRAY);
rec7 = new Rectangle(10, 10, 50, 50);
g.fillRect((int) rec7.getX(), (int) rec7.getY(),
(int) rec7.getWidth(), (int) rec7.getHeight());
rec8 = new Rectangle(70, 10, 50, 50);
g.fillRect((int) rec8.getX(), (int) rec8.getY(),
(int) rec8.getWidth(), (int) rec8.getHeight());
rec9 = new Rectangle(130, 10, 50, 50);
g.fillRect((int) rec9.getX(), (int) rec9.getY(),
(int) rec9.getWidth(), (int) rec9.getHeight());
} else if (n == 7) {
rec1 = new Rectangle(10, 130, 50, 50);
g.fillRect((int) rec1.getX(), (int) rec1.getY(),
(int) rec1.getWidth(), (int) rec1.getHeight());
rec2 = new Rectangle(70, 130, 50, 50);
g.fillRect((int) rec2.getX(), (int) rec2.getY(),
(int) rec2.getWidth(), (int) rec2.getHeight());
rec3 = new Rectangle(130, 130, 50, 50);
g.fillRect((int) rec3.getX(), (int) rec3.getY(),
(int) rec3.getWidth(), (int) rec3.getHeight());
rec4 = new Rectangle(10, 70, 50, 50);
g.fillRect((int) rec4.getX(), (int) rec4.getY(),
(int) rec4.getWidth(), (int) rec4.getHeight());
rec5 = new Rectangle(70, 70, 50, 50);
g.fillRect((int) rec5.getX(), (int) rec5.getY(),
(int) rec5.getWidth(), (int) rec5.getHeight());
rec6 = new Rectangle(130, 70, 50, 50);
g.fillRect((int) rec6.getX(), (int) rec6.getY(),
(int) rec6.getWidth(), (int) rec6.getHeight());
g.setColor(Color.LIGHT_GRAY);
rec7 = new Rectangle(10, 10, 50, 50);
g.fillRect((int) rec7.getX(), (int) rec7.getY(),
(int) rec7.getWidth(), (int) rec7.getHeight());
g.setColor(Color.DARK_GRAY);
rec8 = new Rectangle(70, 10, 50, 50);
g.fillRect((int) rec8.getX(), (int) rec8.getY(),
(int) rec8.getWidth(), (int) rec8.getHeight());
rec9 = new Rectangle(130, 10, 50, 50);
g.fillRect((int) rec9.getX(), (int) rec9.getY(),
(int) rec9.getWidth(), (int) rec9.getHeight());
} else if (n == 8) {
rec1 = new Rectangle(10, 130, 50, 50);
g.fillRect((int) rec1.getX(), (int) rec1.getY(),
(int) rec1.getWidth(), (int) rec1.getHeight());
rec2 = new Rectangle(70, 130, 50, 50);
g.fillRect((int) rec2.getX(), (int) rec2.getY(),
(int) rec2.getWidth(), (int) rec2.getHeight());
rec3 = new Rectangle(130, 130, 50, 50);
g.fillRect((int) rec3.getX(), (int) rec3.getY(),
(int) rec3.getWidth(), (int) rec3.getHeight());
rec4 = new Rectangle(10, 70, 50, 50);
g.fillRect((int) rec4.getX(), (int) rec4.getY(),
(int) rec4.getWidth(), (int) rec4.getHeight());
rec5 = new Rectangle(70, 70, 50, 50);
g.fillRect((int) rec5.getX(), (int) rec5.getY(),
(int) rec5.getWidth(), (int) rec5.getHeight());
rec6 = new Rectangle(130, 70, 50, 50);
g.fillRect((int) rec6.getX(), (int) rec6.getY(),
(int) rec6.getWidth(), (int) rec6.getHeight());
rec7 = new Rectangle(10, 10, 50, 50);
g.fillRect((int) rec7.getX(), (int) rec7.getY(),
(int) rec7.getWidth(), (int) rec7.getHeight());
g.setColor(Color.LIGHT_GRAY);
rec8 = new Rectangle(70, 10, 50, 50);
g.fillRect((int) rec8.getX(), (int) rec8.getY(),
(int) rec8.getWidth(), (int) rec8.getHeight());
g.setColor(Color.DARK_GRAY);
rec9 = new Rectangle(130, 10, 50, 50);
g.fillRect((int) rec9.getX(), (int) rec9.getY(),
(int) rec9.getWidth(), (int) rec9.getHeight());
} else {
rec1 = new Rectangle(10, 130, 50, 50);
g.fillRect((int) rec1.getX(), (int) rec1.getY(),
(int) rec1.getWidth(), (int) rec1.getHeight());
rec2 = new Rectangle(70, 130, 50, 50);
g.fillRect((int) rec2.getX(), (int) rec2.getY(),
(int) rec2.getWidth(), (int) rec2.getHeight());
rec3 = new Rectangle(130, 130, 50, 50);
g.fillRect((int) rec3.getX(), (int) rec3.getY(),
(int) rec3.getWidth(), (int) rec3.getHeight());
rec4 = new Rectangle(10, 70, 50, 50);
g.fillRect((int) rec4.getX(), (int) rec4.getY(),
(int) rec4.getWidth(), (int) rec4.getHeight());
rec5 = new Rectangle(70, 70, 50, 50);
g.fillRect((int) rec5.getX(), (int) rec5.getY(),
(int) rec5.getWidth(), (int) rec5.getHeight());
rec6 = new Rectangle(130, 70, 50, 50);
g.fillRect((int) rec6.getX(), (int) rec6.getY(),
(int) rec6.getWidth(), (int) rec6.getHeight());
rec7 = new Rectangle(10, 10, 50, 50);
g.fillRect((int) rec7.getX(), (int) rec7.getY(),
(int) rec7.getWidth(), (int) rec7.getHeight());
rec8 = new Rectangle(70, 10, 50, 50);
g.fillRect((int) rec8.getX(), (int) rec8.getY(),
(int) rec8.getWidth(), (int) rec8.getHeight());
g.setColor(Color.LIGHT_GRAY);
rec9 = new Rectangle(130, 10, 50, 50);
g.fillRect((int) rec9.getX(), (int) rec9.getY(),
(int) rec9.getWidth(), (int) rec9.getHeight());
}
}
새로운 코드 :
이private static void drawRectangle(Graphics g, int column, int row,
Color color) {
g.setColor(color);
g.fillRect(column * 60 + 10, row * 60 + 10, 50, 50);
n = rand.nextInt(9);
for (row = 0; row < 3; row++) {
for (column = 0; column < 3; column++) {
drawRectangle(g, column, row,
n == row * 3 + column ? Color.LIGHT_GRAY
: Color.DARK_GRAY);
}
}
}
루프 및 배열에 대해 알고 계십니까? –
8 개의 직사각형을 만듭니다. 그 후에 난수를 확인하십시오. 그렇게하면 가능한 모든 경우에 대해 하나의 직사각형 만 생성하게됩니다. 또는 9를 만들고 케이스의 채우기 색을 설정할 수 있습니다. –
실제로 'Rectangle' 객체가 실제로 필요합니까? –