daily pastebin goal
81%
SHARE
TWEET

Untitled

a guest May 16th, 2018 134 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import java.awt.Color;
  2. import java.awt.Graphics;
  3. import java.awt.event.KeyEvent;
  4. import java.awt.event.KeyListener;
  5.  
  6. import javax.swing.JFrame;
  7. import javax.swing.JPanel;
  8.  
  9. public class connect4graphics extends JPanel implements KeyListener {
  10.  
  11.     // declare variables
  12.  
  13.     int highlighted = 3;
  14.     static int board[][] = new int[7][8];
  15.     static JFrame f;
  16.     static int turn = 1;
  17.     static Color cb[] = { Color.WHITE, Color.RED, Color.BLUE };
  18.     static boolean connect4 = false;
  19.     static boolean p2win = false;
  20.     static boolean p1win = false;
  21.  
  22.     public void paintComponent(Graphics g) {
  23.         // graphics
  24.         for (int k = 0; k < 6; k++) {
  25.             for (int j = 0; j < 7; j++) {
  26.                 g.setColor(cb[board[k + 1][j]]);
  27.                 g.fillOval(100 * j + 30, 90 * (k + 1), 70, 70);
  28.             }
  29.             g.setColor(cb[turn]);
  30.             g.fillOval(100 * highlighted + 50, 20, 30, 30);
  31.         }
  32.         if (p1win == true) {
  33.             g.setColor(Color.blue);
  34.             g.drawString("BLUE wins", 720, 300);
  35.         }
  36.         if (p2win == true) {
  37.             g.setColor(Color.red);
  38.             g.drawString("RED wins", 720, 300);
  39.         }
  40.  
  41.     }
  42.  
  43.     public static void main(String[] args) {
  44.         // makes jframe and key listener
  45.         f = new JFrame("Connect 4");
  46.         connect4graphics p = new connect4graphics();
  47.         f.setSize(800, 800);
  48.         f.setVisible(true);
  49.         f.setBackground(Color.ORANGE);
  50.         f.add(p);
  51.         f.addKeyListener(p);
  52.  
  53.     }
  54.  
  55.     public void keyPressed(KeyEvent move) {
  56.         // movement
  57.  
  58.         if (move.getKeyCode() == KeyEvent.VK_RIGHT) {
  59.             ++highlighted;
  60.             if (highlighted > 6) {
  61.                 highlighted = 6;
  62.  
  63.             }
  64.  
  65.         } else if (move.getKeyCode() == KeyEvent.VK_LEFT) {
  66.             --highlighted;
  67.             if (highlighted <= 0) {
  68.                 highlighted = 0;
  69.             }
  70.  
  71.         } else if (move.getKeyCode() == KeyEvent.VK_SPACE) {
  72.             dropball(highlighted);
  73.  
  74.         }
  75.         f.repaint();
  76.     }
  77.  
  78.     public void dropball(int highlighted) {
  79.         // drops the ball
  80.         while (p1win == false && p2win == false) {
  81.             for (int j = 6; j >= 0; j--) {
  82.                 if (board[j][highlighted] == 0) {
  83.                     board[j][highlighted] = turn;
  84.                     if (turn == 1) {
  85.                         turn++;
  86.                         break;
  87.                     } else if (turn == 2) {
  88.                         turn--;
  89.                         j = 0;
  90.                         break;
  91.  
  92.                     }
  93.                 }
  94.  
  95.                 f.repaint();
  96.             }
  97.            
  98.             //win check
  99.            
  100.             for (int o = 0; o < 4; o++) {
  101.                 for (int p = 0; p < 5; p++) {
  102.                     if (board[o][p] != 0 && board[o][p] == board[o + 1][p + 1]
  103.                             && board[o + 1][p + 1] == board[o + 2][p + 2]
  104.                             && board[o + 2][p + 2] == board[o + 3][p + 3]) {
  105.                         if (turn == 1) {
  106.                             p1win = true;
  107.                         } else if (turn == 2) {
  108.                             p2win = true;
  109.                             break;
  110.                         }
  111.                     }
  112.                 }
  113.             }
  114.             for (int o = 0; o < 4; o++) {
  115.                 for (int p = 0; p < 5; p++) {
  116.                     if (board[o][p] != 0 && board[o][p] == board[o - 1][p - 1]
  117.                             && board[o - 1][p - 1] == board[o - 2][p - 2]
  118.                             && board[o - 2][p - 2] == board[o - 3][p - 3]) {
  119.                         if (turn == 1) {
  120.                             p1win = true;
  121.                         } else if (turn == 2) {
  122.                             p2win = true;
  123.                             break;
  124.  
  125.                         }
  126.                     }
  127.                 }
  128.             }
  129.             for (int o = 0; o < 4; o++) {
  130.                 for (int p = 0; p < 5; p++) {
  131.                     if (board[o][p] != 0 && board[o][p] == board[o + 1][p]
  132.                             && board[o + 1][p] == board[o + 2][p]
  133.                             && board[o + 2][p] == board[o + 3][p]) {
  134.                         if (turn == 1) {
  135.                             p1win = true;
  136.                         } else if (turn == 2) {
  137.                             p2win = true;
  138.                             break;
  139.                         }
  140.                     }
  141.                 }
  142.             }
  143.  
  144.             {
  145.  
  146.                 for (int o = 0; o < 7; o++) {
  147.                     for (int p = 0; p < 4; p++) {
  148.                         if (board[o][p] != 0 && board[o][p] == board[o][p + 1]
  149.                                 && board[o][p + 1] == board[o][p + 2]
  150.                                 && board[o][p + 2] == board[o][p + 3]) {
  151.                             if (turn == 1) {
  152.                                 p1win = true;
  153.                             } else if (turn == 2) {
  154.                                 p2win = true;
  155.                                 break;
  156.                             }
  157.                         }
  158.                     }
  159.                 }
  160.             }
  161.  
  162.             break;
  163.         }
  164.     }
  165.  
  166.     public void keyReleased(KeyEvent arg0) {
  167.         // TODO Auto-generated method stub
  168.  
  169.     }
  170.  
  171.     public void keyTyped(KeyEvent arg0) {
  172.         // TODO Auto-generated method stub
  173.  
  174.     }
  175. }
RAW Paste Data
Top