This commit is contained in:
Cyprien111
2025-04-07 09:03:18 +02:00
2 changed files with 79 additions and 20 deletions

View File

@@ -3,13 +3,32 @@ import java.awt.Graphics;
class RenderBoard {
private int width;
private int height;
private int[][] boardState; // Example representation of the board state
private int boardWidth;
private int boardHeight;
public int renderWidth;
public int renderHeight;
private int cellSize;
private int borderThickness;
// private int[][] boardState;
public RenderBoard(int width, int height) {
this.width = width;
this.height = height;
public RenderBoard(int width, int height, int renderWidth, int renderHeight) {
this.boardWidth = width;
this.boardHeight = height;
this.renderWidth = renderWidth;
this.renderHeight = renderHeight;
this.borderThickness = 5;
int cellWidth = renderWidth / width;
int cellHeight = renderHeight / height;
this.cellSize = Math.min(cellWidth, cellHeight);
}
public RenderBoard(int renderWidth, int renderHeight) {
this(
GomokuGame.DEFAULT_BOARD_WIDTH,
GomokuGame.DEFAULT_BOARD_HEIGHT,
renderWidth,
renderHeight
);
}
public void update(GomokuGame game) {
@@ -17,17 +36,59 @@ class RenderBoard {
// This method should be called whenever the game state changes
}
public void drawBoard(Graphics g, int x, int y, int w, int h) {
// Draw the board here
public void drawBoard(Graphics g, int x, int y) {
// Draw the global border
g.setColor(Color.LIGHT_GRAY);
int cellSize = w / this.width;
g.fillRect(
x,
y,
this.renderWidth + 2 * this.borderThickness,
this.renderHeight + 2 * this.borderThickness
);
g.setColor(Color.WHITE);
g.fillRect(
x + this.borderThickness,
y + this.borderThickness,
this.renderWidth,
this.renderHeight
);
for (int i = 0; i < this.width; i++) {
for (int j = 0; j < this.height; j++) {
g.drawRect(x + i * cellSize, y + j * cellSize, cellSize, cellSize);
// Draw the tokens here
g.fillOval(x + i * cellSize, y + j * cellSize, cellSize, cellSize);
int i, j;
int cy = y + this.borderThickness;
for (i = 0; i < this.boardHeight; i++) {
int cx = x + this.borderThickness;
for (j = 0; j < this.boardWidth; j++) {
// Draw the border
g.setColor(Color.LIGHT_GRAY);
g.fillRect(
cx,
cy,
this.cellSize,
this.cellSize
);
g.setColor(Color.WHITE);
g.fillRect(
cx + this.borderThickness,
cy + this.borderThickness,
this.cellSize - 2 * this.borderThickness,
this.cellSize - 2 * this.borderThickness
);
// Draw the cell
this.drawToken(g, x, y, Color.BLUE);
cx += this.cellSize;
}
cy += this.cellSize;
}
}
public void drawToken(Graphics g, int x, int y, Color color) {
// Draw the token at the specified position
g.setColor(color);
g.fillRect(
x + 2 * this.borderThickness,
y + 2 * this.borderThickness,
cellSize - 2 * borderThickness,
cellSize - 2 * borderThickness
);
}
}

View File

@@ -50,7 +50,7 @@ class RenderCanvas extends JPanel {
public RenderCanvas() {
setBorder(BorderFactory.createLineBorder(Color.black));
setBackground(Color.white);
board = new RenderBoard(8, 8); // Example board size
board = new RenderBoard(15, 15, 600, 600);
}
public Dimension getPreferredSize() {
@@ -62,11 +62,9 @@ class RenderCanvas extends JPanel {
int midX = getWidth() / 2;
int midY = getHeight() / 2;
int boardWidth = 400; // Example board width
int boardHeight = 400; // Example board height
int x = midX - (boardWidth / 2);
int y = midY - (boardHeight / 2);
board.drawBoard(g, x, y, boardWidth, boardHeight);
int x = midX - (this.board.renderWidth / 2);
int y = midY - (this.board.renderHeight / 2);
board.drawBoard(g, x, y);
}
public void draw(GomokuGame game) {