Add labels
This commit is contained in:
16
.cache/save.dat
Normal file
16
.cache/save.dat
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
15 15 BLACK 2 51 52
|
||||||
|
...............
|
||||||
|
...............
|
||||||
|
...............
|
||||||
|
...............
|
||||||
|
........X......
|
||||||
|
.......OX......
|
||||||
|
......XXOO.....
|
||||||
|
.......XOXO....
|
||||||
|
.......XX..O...
|
||||||
|
.......O....O..
|
||||||
|
.............X.
|
||||||
|
...............
|
||||||
|
...............
|
||||||
|
...............
|
||||||
|
...............
|
||||||
16
.cache/test.dat
Normal file
16
.cache/test.dat
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
15 15 BLACK 2 51 52
|
||||||
|
...............
|
||||||
|
...............
|
||||||
|
...............
|
||||||
|
...............
|
||||||
|
........X......
|
||||||
|
.......OX......
|
||||||
|
......XXOO.....
|
||||||
|
.......XOXO....
|
||||||
|
.......XX..O...
|
||||||
|
.......O....O..
|
||||||
|
.............X.
|
||||||
|
...............
|
||||||
|
...............
|
||||||
|
...............
|
||||||
|
...............
|
||||||
@@ -9,7 +9,6 @@ class RenderBoard {
|
|||||||
public int renderHeight;
|
public int renderHeight;
|
||||||
private int cellSize;
|
private int cellSize;
|
||||||
private int borderThickness;
|
private int borderThickness;
|
||||||
// private int[][] boardState;
|
|
||||||
|
|
||||||
public RenderBoard(int width, int height, int renderWidth, int renderHeight) {
|
public RenderBoard(int width, int height, int renderWidth, int renderHeight) {
|
||||||
this.boardWidth = width;
|
this.boardWidth = width;
|
||||||
@@ -74,7 +73,9 @@ class RenderBoard {
|
|||||||
this.cellSize - 2 * this.borderThickness
|
this.cellSize - 2 * this.borderThickness
|
||||||
);
|
);
|
||||||
// Draw the cell
|
// Draw the cell
|
||||||
this.drawToken(g, x, y, Color.BLUE);
|
if (i == boardWidth / 2 && j == boardHeight / 2) {
|
||||||
|
this.drawToken(g, cx, cy, Color.BLUE);
|
||||||
|
}
|
||||||
cx += this.cellSize;
|
cx += this.cellSize;
|
||||||
}
|
}
|
||||||
cy += this.cellSize;
|
cy += this.cellSize;
|
||||||
@@ -85,8 +86,8 @@ class RenderBoard {
|
|||||||
// Draw the token at the specified position
|
// Draw the token at the specified position
|
||||||
g.setColor(color);
|
g.setColor(color);
|
||||||
g.fillRect(
|
g.fillRect(
|
||||||
x + 2 * this.borderThickness,
|
x + borderThickness,
|
||||||
y + 2 * this.borderThickness,
|
y + borderThickness,
|
||||||
cellSize - 2 * borderThickness,
|
cellSize - 2 * borderThickness,
|
||||||
cellSize - 2 * borderThickness
|
cellSize - 2 * borderThickness
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -4,8 +4,11 @@ import javax.swing.BorderFactory;
|
|||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import javax.swing.JFrame;
|
import javax.swing.JFrame;
|
||||||
|
import javax.swing.JLabel;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
|
import java.awt.event.MouseListener;
|
||||||
|
import java.awt.event.MouseEvent;
|
||||||
|
|
||||||
public class SwingRenderer extends GomokuRenderer {
|
public class SwingRenderer extends GomokuRenderer {
|
||||||
|
|
||||||
@@ -22,17 +25,38 @@ public class SwingRenderer extends GomokuRenderer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init(GomokuGame game) {
|
public void init(GomokuGame game) {
|
||||||
SwingUtilities.invokeLater(new Runnable() {
|
mainFrame = new JFrame("Gomoku! - Projet L2");
|
||||||
public void run() {
|
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
mainFrame = new JFrame("Gomoku! - Projet L2");
|
mainFrame.setSize(960, 960);
|
||||||
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
mainFrame.setResizable(false);
|
||||||
mainFrame.setSize(960, 960);
|
canvas = new RenderCanvas();
|
||||||
canvas = new RenderCanvas();
|
mainFrame.add(canvas);
|
||||||
mainFrame.add(canvas);
|
mainFrame.pack();
|
||||||
mainFrame.pack();
|
mainFrame.setVisible(true);
|
||||||
mainFrame.setVisible(true);
|
mainFrame.addMouseListener(canvas);
|
||||||
}
|
|
||||||
});
|
// add a label component for the title
|
||||||
|
JLabel titleLabel = new JLabel("Gomoku Game!", JLabel.CENTER);
|
||||||
|
titleLabel.setVerticalAlignment(JLabel.CENTER);
|
||||||
|
titleLabel.setBackground(Color.WHITE);
|
||||||
|
titleLabel.setOpaque(true);
|
||||||
|
titleLabel.setBorder(BorderFactory.createEmptyBorder(20, 0, 20, 0));
|
||||||
|
// set the font size and color
|
||||||
|
titleLabel.setFont(titleLabel.getFont().deriveFont(24f));
|
||||||
|
|
||||||
|
mainFrame.add(titleLabel, "North");
|
||||||
|
mainFrame.pack();
|
||||||
|
|
||||||
|
// add a bottom label for the status
|
||||||
|
JLabel statusLabel = new JLabel("Status: Waiting for player...", JLabel.CENTER);
|
||||||
|
statusLabel.setVerticalAlignment(JLabel.CENTER);
|
||||||
|
statusLabel.setBackground(Color.WHITE);
|
||||||
|
statusLabel.setOpaque(true);
|
||||||
|
statusLabel.setBorder(BorderFactory.createEmptyBorder());
|
||||||
|
// set the font size and color
|
||||||
|
statusLabel.setFont(statusLabel.getFont().deriveFont(18f));
|
||||||
|
mainFrame.add(statusLabel, "South");
|
||||||
|
mainFrame.pack();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -41,14 +65,20 @@ public class SwingRenderer extends GomokuRenderer {
|
|||||||
// This method should be called whenever the game state changes
|
// This method should be called whenever the game state changes
|
||||||
canvas.draw(game);
|
canvas.draw(game);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void updateStatus(String status) {
|
||||||
|
// Update the status label
|
||||||
|
JLabel statusLabel = (JLabel) mainFrame.getContentPane().getComponent(1);
|
||||||
|
statusLabel.setText("Status: " + status);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class RenderCanvas extends JPanel {
|
class RenderCanvas extends JPanel implements MouseListener {
|
||||||
|
|
||||||
public RenderBoard board;
|
public RenderBoard board;
|
||||||
|
|
||||||
public RenderCanvas() {
|
public RenderCanvas() {
|
||||||
setBorder(BorderFactory.createLineBorder(Color.black));
|
setBorder(BorderFactory.createEmptyBorder());
|
||||||
setBackground(Color.white);
|
setBackground(Color.white);
|
||||||
board = new RenderBoard(15, 15, 600, 600);
|
board = new RenderBoard(15, 15, 600, 600);
|
||||||
}
|
}
|
||||||
@@ -72,4 +102,26 @@ class RenderCanvas extends JPanel {
|
|||||||
board.update(game);
|
board.update(game);
|
||||||
repaint();
|
repaint();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void mouseClicked(MouseEvent e) {
|
||||||
|
// Handle mouse click events
|
||||||
|
int x = e.getX();
|
||||||
|
int y = e.getY();
|
||||||
|
System.out.println("Mouse clicked at: " + x + ", " + y);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void mousePressed(MouseEvent e) {
|
||||||
|
// Handle mouse press events
|
||||||
|
int x = e.getX();
|
||||||
|
int y = e.getY();
|
||||||
|
System.out.println("Mouse pressed at: " + x + ", " + y);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void mouseReleased(MouseEvent e) {}
|
||||||
|
@Override
|
||||||
|
public void mouseEntered(MouseEvent e) {}
|
||||||
|
@Override
|
||||||
|
public void mouseExited(MouseEvent e) {}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user