rendered paste bodyimport java.awt.*; import javax.swing.*; import java.awt.event.*;
public class Board extends JFrame implements MouseListener {
JButton b;
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("The Game");
JFrame frame = new JFrame("Most Awesome");
CellPane[][] board;
private int boardSize ;
private Color color = null;
private Container cont = getContentPane();
boolean[][] cArray = new boolean[boardSize][boardSize];
CellPane cell;
boolean bool;
public Board(int size, Color c){
boardSize = size;
color = c;
}
public void drawBoard(){
menu.setVisible(true);
menu.setName("life");
menuBar.add(menu);
menuBar.setName("woo");
frame.setJMenuBar(menuBar);
board = new CellPane[boardSize][boardSize];
cont.setLayout(new GridLayout(boardSize, boardSize, 1, 1));
cont.setForeground(Color.black);
cont.setBackground(Color.black);
cont.addMouseListener(this);
cont.setName("Game of Life");
for(int i = 0; i < boardSize; i++){
for (int j = 0; j < boardSize; j ++){
int [] a ={i, j};
board[i][j] = new CellPane(a);
board[i][j].setBackground(color);
cont.add(board[i][j]);
}
}
// frame.add(cont);
// button.addMouseListener(this);
}
public void nextState(){
for (int i = 0; i < boardSize; i ++){
for (int j = 0; j < boardSize; j ++){
if(board[i][j].getNeighborhood() < 2){
board[i][j].killCell();
}
else if(board[i][j].getNeighborhood() < 3){
Color
}
else if(board[i][j].getNeighborhood() < 4 && (board[i][j].getLife() == false)){
board[i][j].setLife();
}
else{
board[i][j].killCell();
}
}
}
}
public void startEvent(){
int count = 0;
while(count < 1){
evalBoard();
nextState();
count ++;
}
/*get start from buttonlistener
* while (true)
* nextState;
* maybe wait between updates if to fast
*/
}
//evaluates all cells int the board at any iteration
public void evalBoard(){
for(int i = 0; i < boardSize; i++){
for(int j = 0; j < boardSize; j++){
int count = 0;
int neighborhood = 0;
if(checkWest(i, j)){
neighborhood ++;
}
if(checkEast(i, j)){
neighborhood ++;
}
if(checkNorth(i, j)){
neighborhood ++;
}
if(checkSouth(i, j)){
neighborhood ++;
}
board[i][j].setNeighborhood(neighborhood);
}
}
}
public boolean checkWest(int i, int j){
try{
System.out.print(i);
bool = board[i % boardSize][Math.abs(j - 1) % boardSize].getLife();
return bool;
}
catch(Exception e){
bool =board[i][j + boardSize - 1].getLife();
return bool;
}
}
public boolean checkEast(int i, int j){
try{
bool = board[i][Math.abs(j + 1)%boardSize].getLife();
return bool;
}
catch(Exception e){
bool = board[i][Math.abs(j - boardSize + 1) % boardSize].getLife();
return bool;
}
}
public boolean checkNorth(int i, int j){
try{
bool = board[Math.abs(i - 1)%boardSize][j].getLife();
return bool;
}
catch(Exception e){
bool =board[Math.abs(i + boardSize - 1)%boardSize][j].getLife();
return bool;
}
}
public boolean checkSouth(int i, int j){
try{
bool = board[(i+1)%boardSize][j].getLife();
return bool;
}
catch(Exception e){
bool = board[Math.abs(i - boardSize + 1)%boardSize][j].getLife();
return bool;
}
}
public boolean checkNortWest(int i, int j){
try{
return board[(i - 1)% boardSize][(j - 1) % boardSize].getLife();
}
catch(Exception e){
return board[i% boardSize][(j + boardSize - 1) % boardSize].getLife();
}
}
public boolean checkSouthWest(int i, int j){
try{
return board[(i + 1)% boardSize][(j - 1)% boardSize].getLife();
}
catch(Exception e){
return board[i% boardSize][(j + boardSize - 1)% boardSize].getLife();
}
}
public boolean checkNorthEast(int i, int j){
try{
return board[(i - 1)% boardSize][(j + 1)% boardSize].getLife();
}
catch(Exception e){
return board[i% boardSize][(j - boardSize + 1)% boardSize].getLife();
}
}
public boolean checkSouthEast(int i, int j){
try{
return board[(i + 1)% boardSize][(j + 1)% boardSize].getLife();
}
catch(Exception e){
return board[i% boardSize][(j - boardSize + 1)% boardSize].getLife();
}
}
//MouseEvents implemented from interface
public void mouseEntered(MouseEvent e){
}
public void mousePressed(MouseEvent e){
}
public void mouseReleased(MouseEvent e){
}
public void mouseExited(MouseEvent e){
}
//MouseEvent that switches cell form life to unlife
public void mouseClicked(MouseEvent e){
try{
Point p = e.getPoint();
cell = (CellPane) cont.getComponentAt(p);
cell.setColor(); // sets color and active state
}
catch(Exception a){
startEvent();
}
}
}