Connect Four

//BOARD CLASS import java.awt.event.MouseListener; import java.awt.event.MouseEvent; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Toolkit; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import javax.swing.Timer; import java.util.ArrayList; import java.util.Iterator; import java.util.Random; import javax.swing.ImageIcon; import javax.swing.JPanel; import javax.imageio.*; import java.awt.image.*; import java.io.*; public class Board extends JPanel implements Runnable, MouseListener{ boolean ingame = true; private Dimension d; int BOARD_WIDTH=500; int BOARD_HEIGHT=500; int x = 0; BufferedImage img; String message = "Welcome to Connect Four, Click to Start"; private Thread animator; int counter = 0; int xCell =0; int yCell =0; boolean gameOver = false; int[][] cells = new int[7][6]; public Board(){ addKeyListener(new TAdapter()); addMouseListener(this); setFocusable(true); d = new Dimension(BOARD_WIDTH, BOARD_HEIGHT); setBackground(Color.green); /* * try { * img = ImageIO.read(this.getClass().getResource("mount.jpg")); * } catch (IOException e) { * System.out.println("Image could not be read"); * // System.exit(1); * } */ if (animator == null || !ingame) { animator = new Thread(this); animator.start(); } setDoubleBuffered(true); } public void paint(Graphics g){ super.paint(g); g.setColor(Color.blue); g.fillRect(0, 0, d.width, d.height); g.setColor(Color.white); Font small = new Font("Helvetica", Font.BOLD, 14); FontMetrics metr = this.getFontMetrics(small); g.setFont(small); if(ingame == true){ for(int i = 0; i < 7; i ++){ for(int j = 0; j<6; j++){ if(cells[i][j] == 1){ g.setColor(Color.yellow); } if(cells[i][j] == 2){ g.setColor(Color.red); } g.fillOval(i * 60 + 47,j * 60 + 42,40,40); g.setColor(Color.white); } } } if(gameOver == true){ g.drawString(message, 100, 250); } win(); Toolkit.getDefaultToolkit().sync(); g.dispose(); } public void win(){ for(int i = 0; i < 7; i ++){ for(int q = 0; q<6; q++){ try{ if(cells[0][q] == 1 && cells[0][q-1] == 1 && cells[0][q-2] == 1 && cells[0][q-3] == 1){ message = "Player 1 wins, click to play again"; gameOver = true; } if(cells[0][q] == 2 && cells[0][q-1] == 2 && cells[0][q-2] == 2 && cells[0][q-3] == 2){ message = "Player 2 wins, click to play again"; gameOver = true; if(cells[i][q] == 2 && cells[i][q-1] == 2 && cells[i][q-2] == 2 && cells[i][q-3] == 2){ message = "Player 2 wins, click to play again"; gameOver = true; } if(cells[i][q] == 1 && cells[i-1][q-1] == 1 && cells[i-2][q-2] == 1 && cells[i-3][q-3] == 1){ message = "Player 1 wins, click to play again"; gameOver = true; } if(cells[i][q] == 2 && cells[i-1][q-1] == 2 && cells[i-2][q-2] == 2 && cells[i-3][q-3] == 2){ message = "Player 2 wins, click to play again"; gameOver = true; } if(cells[i][q] == 1 && cells[i+1][q-1] == 1 && cells[i+2][q-2] == 1 && cells[i+3][q-3] == 1){ message = "Player 1 wins, click to play again"; gameOver = true; } if(cells[i][q] == 2 && cells[i+1][q-1] == 2 && cells[i+2][q-2] == 2 && cells[i+3][q-3] == 2){ message = "Player 2 wins, click to play again"; gameOver = true; } if(cells[i][q] == 1 && cells[i-1][q+1] == 1 && cells[i-2][q+2] == 1 && cells[i-3][q+3] == 1){ message = "Player 1 wins, click to play again"; gameOver = true; } if(cells[i][q] == 2 && cells[i-1][q+1] == 2 && cells[i-2][q+2] == 2 && cells[i-3][q+3] == 2){ message = "Player 2 wins, click to play again"; gameOver = true; } } }catch(Exception e){ } } } } private class TAdapter extends KeyAdapter { public void keyReleased(KeyEvent e) { int key = e.getKeyCode(); } public void keyPressed(KeyEvent e) { //System.out.println( e.getKeyCode()); // message = "Key Pressed: " + e.getKeyCode(); int key = e.getKeyCode(); if(key==39){ } } } public void mousePressed(MouseEvent e) { counter ++; int x = e.getX(); int y = e.getY(); xCell = ((x-47)/60); yCell = ((y-43)/60); boolean before = false; for(int i=5; i>=0; i--){ if(cells[xCell][i] == 0 && gameOver == false){ if(counter%2== 0) cells[xCell][i] = 2; else cells[xCell][i] = 1; if(before) cells[xCell][i] = 0; before = true; } } if(gameOver){ gameOver = false; ingame = true; cells = new int [7][6]; message = ""; } } public void mouseReleased(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mouseClicked(MouseEvent e) { } public void run() { long beforeTime, timeDiff, sleep; beforeTime = System.currentTimeMillis(); int animationDelay = 500; long time = System.currentTimeMillis(); while (true) { // spriteManager.update(); repaint(); try { time += animationDelay; Thread.sleep(Math.max(0,time - System.currentTimeMillis())); }catch (InterruptedException e) { System.out.println(e); } } } }

Be the first to comment

You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.