Advertisement
Guest User

Untitled

a guest
Nov 26th, 2014
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.62 KB | None | 0 0
  1. package practicum1;
  2.  
  3. import java.awt.*;
  4. import java.awt.event.*;
  5. import javax.swing.*;
  6.  
  7. public class MyFrame extends JFrame implements ActionListener {
  8.     private static final int GridBreedte = 2;
  9.     private JButton buttons[][] = new JButton[GridBreedte][GridBreedte];
  10.     private String Player1Text = "x";
  11.     private String Player2Text = "o";
  12.     private String currentText = Player1Text;
  13.     private int amountOfBoxes;
  14.     private int amountOfClicks = 0;
  15.  
  16.     public static void main(String args[]) {
  17.         new MyFrame();
  18.     }
  19.  
  20.     public MyFrame() {
  21.         setLayout(new GridLayout(GridBreedte, GridBreedte)); // in feite overbodig, want default
  22.         // dit panel is nodig, omdat we in SOUTH twee knoppen willen plaatsen:
  23.         for (int i = 0; i < buttons.length; i++) {
  24.             for (int j = 0; j < buttons[i].length; j++) {
  25.                 amountOfBoxes++;
  26.                 buttons[i][j] = new JButton("");
  27.                 add(buttons[i][j]);
  28.                 buttons[i][j].addActionListener(this);
  29.             }
  30.         }
  31.         setSize(new Dimension(500, 500));
  32.  
  33.         setVisible(true);
  34.         setDefaultCloseOperation(EXIT_ON_CLOSE);
  35.     }
  36.  
  37.     public void actionPerformed(ActionEvent e) {
  38.         if (currentText.equals(Player1Text)) {
  39.             currentText = Player2Text;
  40.         } else {
  41.             currentText = Player1Text;
  42.         }
  43.         JButton pressedButton = (JButton) e.getSource();
  44.         pressedButton.setEnabled(false);
  45.         pressedButton.setText(currentText);
  46.  
  47.         boolean win = false;
  48.  
  49.         checkButton: for (int i = 0; i < buttons.length; i++) {
  50.             for (int j = 0; j < buttons[i].length; j++) {
  51.                 if (e.getSource() == buttons[i][j]) {
  52.                     win = checkFirstDiagonal();
  53.                     if (!win) {
  54.                         win = checkSecondDiagonal();
  55.                     }
  56.                     if (!win) {
  57.                         win = checkHorizontal(i, j);
  58.                     }
  59.                     if (!win) {
  60.                         win = checkVertical(i, j);
  61.                     }
  62.                     break checkButton;
  63.                 }
  64.             }
  65.         }
  66.         if (win) {
  67.             if (currentText.equals(Player1Text)) {
  68.                 JOptionPane.showMessageDialog(null, "Speler 2 heeft gewonnen");
  69.                 System.out.println("speler 2 heeft Gewonnen");
  70.                 // player 1 heeft gewonnen
  71.                 reset();
  72.             } else {
  73.                 JOptionPane.showMessageDialog(null, "Speler 1 heeft gewonnen");
  74.                 System.out.println("Speler 1 heeft Gewonnen");
  75.                 // Player 2 heeft gewonnen
  76.                 reset();
  77.             }
  78.  
  79.         }
  80.         amountOfClicks++;
  81.         // amount of clicks
  82.         if (amountOfBoxes == amountOfClicks && !win) {
  83.             JOptionPane.showMessageDialog(null, "Niemand heeft gewonnen");
  84.             reset();
  85.         }
  86.     }
  87.  
  88.     private void reset() {
  89.         // reset
  90.         for (int i = 0; i < buttons.length; i++) {
  91.             for (int j = 0; j < buttons[i].length; j++) {
  92.  
  93.                 JButton button = buttons[i][j];
  94.                 button.setEnabled(true);
  95.                 button.setText("");
  96.                 currentText = Player1Text;
  97.             }
  98.         }
  99.     }
  100.  
  101.     private boolean checkFirstDiagonal() {
  102.         // TODO Auto-generated method stub
  103.         for (int i = 0; i < buttons.length; i++) {
  104.             if (buttons[i][i].getText().equals(currentText)) {
  105.                 continue;
  106.             } else {
  107.                 return false;
  108.             }
  109.         }
  110.         return true;
  111.     }
  112.  
  113.     private boolean checkSecondDiagonal() {
  114.         // TODO Auto-generated method stub
  115.         for (int i = 0; i < buttons.length; i++) {
  116.             if (buttons[buttons.length - i - 1][i].getText().toString()
  117.                     .equals(currentText)) {
  118.                 continue;
  119.             } else {
  120.                 return false;
  121.             }
  122.         }
  123.         return true;
  124.     }
  125.  
  126.     private boolean checkVertical(int row, int column) {
  127.         for (int i = 0; i < buttons.length; i++) {
  128.             if (buttons[i][column].getText().equals(currentText)) {
  129.                 continue;
  130.             } else {
  131.                 return false;
  132.             }
  133.         }
  134.         return true;
  135.     }
  136.  
  137.     private boolean checkHorizontal(int row, int column) {
  138.         for (int i = 0; i < buttons.length; i++) {
  139.             if (buttons[row][i].getText().equals(currentText)) {
  140.                 continue;
  141.             } else {
  142.                 return false;
  143.             }
  144.         }
  145.         return true;
  146.     }
  147.  
  148. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement