package de.itsblue.ConnectFour; import javax.swing.*; import java.awt.*; public class GameBoard extends JPanel { /** * */ private static final long serialVersionUID = 1L; public int BoardRows = 6; public int BoardColumns = 7; JPanel[][] BoardContainers = new JPanel[BoardColumns][BoardRows]; public boolean insertPlate(Plate plate, int column) { // check if the column is out of range if(column > BoardColumns-1) return false; // search for an empty row for(int i = BoardRows-1; i >= 0; i--) { if(this.BoardContainers[column][i].getComponents().length == 0) { // if the container is empty -> add the plate this.BoardContainers[column][i].add(plate); return true; } } return false; } public void initBoard() { // configure the main layout this.setLayout(new GridLayout(this.BoardColumns,this.BoardRows+1)); // fill the grid with containers for (int i = 0; i < BoardRows; i++) { for (int j = 0; j < BoardColumns; j++) { // create the container this.BoardContainers[j][i] = new JPanel(new GridBagLayout()); this.BoardContainers[j][i].setPreferredSize(new Dimension(20, 20)); // add the container this.add(this.BoardContainers[j][i]); } } } /*void winningCondition() { for (int i = 0; i <= 2; i++) for (int j = 0; j <= 6; j++) { if (GameBoard[i][j] == p && GameBoard[i + 1][j] == p && GameBoard[i + 2][j] == p && GameBoard[i + 3][j] == p) { finish = true; } } for (int i = 0; i <= 5; i++) for (int j = 0; j <= 3; j++) { if (GameBoard[i][j] == p && GameBoard[i][j + 1] == p && GameBoard[i][j + 2] == p && GameBoard[i][j + 3] == p) finish = true; } for (int i = 0; i <= 2; i++) for (int j = 0; j <= 3; j++) { if (GameBoard[i][j] == p && GameBoard[i + 1][j + 1] == p && GameBoard[i + 2][j + 2] == p && GameBoard[i + 3][j + 3] == p) finish = true; } for (int i = 0; i < 3; i++) for (int j = 6; j > 2; j--) { if (GameBoard[i][j] == p && GameBoard[i + 1][j - 1] == p && GameBoard[i + 2][j - 2] == p && GameBoard[i + 3][j - 3] == p) finish = true; } }*/ /*void switchPlayer() { if (p != 1) p = 1; else p = 1; }*/ GameBoard() { this.initBoard(); } }