Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package javaapplication1;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Label;
- import javax.swing.*;
- import java.awt.event.*;
- /**
- *
- * @author Alexko
- */
- public class JavaAplication1 extends JFrame {
- public static void main(String[] args) {
- JFrame frame = new JavaAplication1();
- frame.setSize( 420, 400);
- frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
- frame.setTitle( "is gelijk?");
- frame.setContentPane( new BKEPaneel() );
- frame.setVisible( true );
- }
- }
- class BKEPaneel extends JPanel implements ActionListener {
- final JButton[] buttons = new JButton[9];
- final Label whoWin = new Label();
- final Label scoreLabel = new Label();
- final JButton resetButton = new JButton();
- final JButton playWithBots = new JButton();
- boolean isBotGame = true;
- int playerScore[] = {0, 0};
- String speler = "X";
- public BKEPaneel() {
- //Bind click event to reset button
- resetButton.addActionListener(this);
- resetButton.setText("0:0");
- resetButton.setBounds(60, 280, 80, 35);
- playWithBots.addActionListener(this);
- playWithBots.setText("Play With Bots: ON");
- playWithBots.setForeground(Color.GREEN);
- playWithBots.setBounds(120 + 30, 280, 150, 35);
- //schakel layout manager uit
- setLayout(null);
- for (int i=0;i<buttons.length;i++) {
- buttons[i]=new JButton("_");
- buttons[i].addActionListener(this);
- add(buttons[i]);
- }
- add(scoreLabel);
- int index = 0;
- //Rows
- for (int j=1; j <=3; j++) {
- //Lines
- for(int i = 1; i <= 3; i++) {
- buttons[index].setBounds( i * 60, j * 60, 50, 50);
- index++;
- }
- }
- add(playWithBots);
- add(resetButton);
- add(whoWin);
- }
- private boolean checkForCharacter(String character)
- {
- //Malo by to byt cez for to by bolo ovela mensie ale jebat
- //Horizontal check
- if(buttons[0].getText().equals(character) && buttons[1].getText().equals(character) && buttons[2].getText().equals(character))
- return true;
- //Horizontal check row 2
- if(buttons[3].getText().equals(character) && buttons[4].getText().equals(character) && buttons[5].getText().equals(character))
- return true;
- //Horizontal check row 3
- if(buttons[4].getText().equals(character) && buttons[5].getText().equals(character) && buttons[6].getText().equals(character))
- return true;
- //vertical check row 1
- if(buttons[0].getText().equals(character) && buttons[3].getText().equals(character) && buttons[6].getText().equals(character))
- return true;
- //vertical check row 2
- if(buttons[1].getText().equals(character) && buttons[4].getText().equals(character) && buttons[7].getText().equals(character))
- return true;
- //Horizontal check row 3
- if(buttons[2].getText().equals(character) && buttons[5].getText().equals(character) && buttons[8].getText().equals(character))
- return true;
- //van links naar rechts - boven naar beneden
- if(buttons[0].getText().equals(character) && buttons[4].getText().equals(character) && buttons[8].getText().equals(character))
- return true;
- // van rechts naar links - beneden naar boven
- //Horizontal check row 2
- if(buttons[8].getText().equals(character) && buttons[4].getText().equals(character) && buttons[0].getText().equals(character))
- return true;
- //van links onder naar rechts boven
- if(buttons[6].getText().equals(character) && buttons[4].getText().equals(character) && buttons[2].getText().equals(character))
- return true;
- return false;
- }
- private void restartGame()
- {
- //Reset game
- for (JButton button : buttons) {
- button.setText("_");
- }
- }
- private void updateScore()
- {
- String myFancyFormatedString = String.format("%d:%d", playerScore[0], playerScore[1]);
- resetButton.setText(myFancyFormatedString);
- }
- private void checkForWinner ()
- {
- if (checkForCharacter("X"))
- {
- JOptionPane.showMessageDialog(null, "Player X is winner");
- restartGame();
- playerScore[0]++;
- updateScore();
- }
- else if(checkForCharacter("O"))
- {
- JOptionPane.showMessageDialog(null, "Player O is winner");
- restartGame();
- playerScore[1]++;
- updateScore();
- }
- boolean isFull = true;
- for (JButton button : buttons) {
- if ("_".equals(button.getText())) {
- isFull = false;
- }
- }
- if(isFull) {
- whoWin.setText("Noone won");
- restartGame();
- }
- }
- public void botChoose()
- {
- int randomIndex = 0;
- while( !buttons[randomIndex].getText().equals("_") && randomIndex < buttons.length)
- {
- randomIndex++;
- }
- buttons[randomIndex].setText(speler);
- }
- public void flipCurrentPlayer()
- {
- if(speler.equals("X")) speler = "O";
- else speler = "X";
- }
- public void actionPerformed( ActionEvent e) {
- JButton src =(JButton) e.getSource();
- //If rest button is pressed
- if(src == resetButton) {
- restartGame();
- return;
- }
- if(src == playWithBots) {
- playWithBots.setForeground(Color.red);
- playWithBots.setText("Play With Bots: OFF");
- isBotGame = false;
- restartGame();
- return;
- }
- //Check if game field button was pressed
- for(int i= 0; i < buttons.length; i++) {
- JButton currentButton = buttons[i];
- if(currentButton == src && currentButton.getText().equals("_")) {
- flipCurrentPlayer();
- currentButton.setText(speler);
- checkForWinner();
- if(isBotGame) {
- //Bot
- flipCurrentPlayer();
- botChoose();
- checkForWinner();
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement