diff --git a/src/main/java/com/small/dicegame/DieBox.java b/src/main/java/com/small/dicegame/DieBox.java index dc5905c637444d454fba4347130bdbf3589b481d..6f45c42e26008377f7ebe93feabe55f053578031 100644 --- a/src/main/java/com/small/dicegame/DieBox.java +++ b/src/main/java/com/small/dicegame/DieBox.java @@ -12,7 +12,7 @@ import java.awt.event.ActionListener; public class DieBox extends Box { private final int index; private int currentValue = 6; - private JButton holdButton = new JButton("Hold"); + private final JButton holdButton = new JButton("Hold"); public DieBox(int index) { super(BoxLayout.PAGE_AXIS); @@ -43,46 +43,48 @@ public class DieBox extends Box { g.setColor(Color.black); g.drawRoundRect(0, 0, 60, 60, 30, 30); - g.setColor(Color.black); - switch (currentValue) { - case 1: - g.fillOval(25, 25, 10, 10); - break; - case 2: - g.fillOval(12, 10, 10, 10); - g.fillOval(37, 40, 10, 10); - break; - case 3: - g.fillOval(25, 25, 10, 10); - g.fillOval(12, 10, 10, 10); - g.fillOval(37, 40, 10, 10); - break; - case 4: - g.fillOval(12, 10, 10, 10); - g.fillOval(37, 40, 10, 10); - g.fillOval(37, 10, 10, 10); - g.fillOval(12, 40, 10, 10); - break; - case 5: - g.fillOval(25, 25, 10, 10); - g.fillOval(12, 10, 10, 10); - g.fillOval(37, 40, 10, 10); - g.fillOval(37, 10, 10, 10); - g.fillOval(12, 40, 10, 10); - break; - case 6: - g.fillOval(12, 10, 10, 10); - g.fillOval(37, 10, 10, 10); - g.fillOval(12, 25, 10, 10); - g.fillOval(37, 25, 10, 10); - g.fillOval(12, 40, 10, 10); - g.fillOval(37, 40, 10, 10); - break; - default: - break; + if (currentValue >= 1 && currentValue <= 6) { + g.setColor(Color.black); + if (currentValue % 2 == 1) { + drawCenterDot(g); + } + if (currentValue > 1) { + drawTlBrCornerDots(g); + if (currentValue > 3) { + drawTrBlCornerDots(g); + if (currentValue == 6) { + drawMlMrDots(g); + } + } + } } } + private void drawMlMrDots(Graphics g) { + drawDots(g, 12, 25, 37, 25); + } + + private void drawDots(Graphics g, int x1, int y1, int x2, int y2) { + drawDot(g, x1, y1); + drawDot(g, x2, y2); + } + + private void drawCenterDot(Graphics g) { + drawDot(g, 25, 25); + } + + private void drawDot(Graphics g, int x, int y) { + g.fillOval(x, y, 10, 10); // center 5 of 9 + } + + private void drawTlBrCornerDots(Graphics g) { + drawDots(g, 12, 10, 37, 40); + } + + private void drawTrBlCornerDots(Graphics g) { + drawDots(g, 37, 10, 12, 40); + } + public void setCurrentValue(int currentValue) { this.currentValue = currentValue; repaint();