Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package practicum1;
- import java.awt.*;
- import java.awt.event.*;
- import javax.swing.*;
- public class MyFrame extends JFrame implements ActionListener {
- private static final int GridBreedte = 2;
- private JButton buttons[][] = new JButton[GridBreedte][GridBreedte];
- private String Player1Text = "x";
- private String Player2Text = "o";
- private String currentText = Player1Text;
- private int amountOfBoxes;
- private int amountOfClicks = 0;
- public static void main(String args[]) {
- new MyFrame();
- }
- public MyFrame() {
- setLayout(new GridLayout(GridBreedte, GridBreedte)); // in feite overbodig, want default
- // dit panel is nodig, omdat we in SOUTH twee knoppen willen plaatsen:
- for (int i = 0; i < buttons.length; i++) {
- for (int j = 0; j < buttons[i].length; j++) {
- amountOfBoxes++;
- buttons[i][j] = new JButton("");
- add(buttons[i][j]);
- buttons[i][j].addActionListener(this);
- }
- }
- setSize(new Dimension(500, 500));
- setVisible(true);
- setDefaultCloseOperation(EXIT_ON_CLOSE);
- }
- public void actionPerformed(ActionEvent e) {
- if (currentText.equals(Player1Text)) {
- currentText = Player2Text;
- } else {
- currentText = Player1Text;
- }
- JButton pressedButton = (JButton) e.getSource();
- pressedButton.setEnabled(false);
- pressedButton.setText(currentText);
- boolean win = false;
- checkButton: for (int i = 0; i < buttons.length; i++) {
- for (int j = 0; j < buttons[i].length; j++) {
- if (e.getSource() == buttons[i][j]) {
- win = checkFirstDiagonal();
- if (!win) {
- win = checkSecondDiagonal();
- }
- if (!win) {
- win = checkHorizontal(i, j);
- }
- if (!win) {
- win = checkVertical(i, j);
- }
- break checkButton;
- }
- }
- }
- if (win) {
- if (currentText.equals(Player1Text)) {
- JOptionPane.showMessageDialog(null, "Speler 2 heeft gewonnen");
- System.out.println("speler 2 heeft Gewonnen");
- // player 1 heeft gewonnen
- reset();
- } else {
- JOptionPane.showMessageDialog(null, "Speler 1 heeft gewonnen");
- System.out.println("Speler 1 heeft Gewonnen");
- // Player 2 heeft gewonnen
- reset();
- }
- }
- amountOfClicks++;
- // amount of clicks
- if (amountOfBoxes == amountOfClicks && !win) {
- JOptionPane.showMessageDialog(null, "Niemand heeft gewonnen");
- reset();
- }
- }
- private void reset() {
- // reset
- for (int i = 0; i < buttons.length; i++) {
- for (int j = 0; j < buttons[i].length; j++) {
- JButton button = buttons[i][j];
- button.setEnabled(true);
- button.setText("");
- currentText = Player1Text;
- }
- }
- }
- private boolean checkFirstDiagonal() {
- // TODO Auto-generated method stub
- for (int i = 0; i < buttons.length; i++) {
- if (buttons[i][i].getText().equals(currentText)) {
- continue;
- } else {
- return false;
- }
- }
- return true;
- }
- private boolean checkSecondDiagonal() {
- // TODO Auto-generated method stub
- for (int i = 0; i < buttons.length; i++) {
- if (buttons[buttons.length - i - 1][i].getText().toString()
- .equals(currentText)) {
- continue;
- } else {
- return false;
- }
- }
- return true;
- }
- private boolean checkVertical(int row, int column) {
- for (int i = 0; i < buttons.length; i++) {
- if (buttons[i][column].getText().equals(currentText)) {
- continue;
- } else {
- return false;
- }
- }
- return true;
- }
- private boolean checkHorizontal(int row, int column) {
- for (int i = 0; i < buttons.length; i++) {
- if (buttons[row][i].getText().equals(currentText)) {
- continue;
- } else {
- return false;
- }
- }
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement