Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.FisheyLP.TicTacToe;
- import java.awt.Color;
- import java.awt.GridLayout;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.JButton;
- import javax.swing.JDialog;
- import javax.swing.JFrame;
- import javax.swing.JLabel;
- import javax.swing.JOptionPane;
- @SuppressWarnings("serial")
- public class Gui extends JFrame {
- JButton buttons[];
- JButton restart, spielerAnzeige, exit;
- char spieler;
- Color background = new Color(235, 235, 200);
- Color rot = new Color(205, 50, 50);
- Color blau = new Color(25, 110, 190);
- Color hellrot = new Color(215, 100, 100);
- Color hellblau = new Color(95, 145, 200);
- public Gui() {
- setVisible(true);
- setTitle("Tic Tac Toe");
- setSize(375, 500);
- setMinimumSize(getSize());
- setLayout(new GridLayout(4, 3));
- setLocationRelativeTo(null);
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- spieler = 'X';
- restart = new JButton("Neustart");
- restart.setBackground(new Color(250, 250, 250));
- add(restart);
- spielerAnzeige = new JButton(spieler + " ist dran.");
- spielerAnzeige.setBackground(hellrot);
- add(spielerAnzeige);
- exit = new JButton("Schließen");
- exit.setBackground(new Color(250, 250, 250));
- add(exit);
- initButtons();
- exit.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- System.exit(0);
- }
- });
- restart.addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- restart();
- }
- });
- for (int i = 0; i < buttons.length; i++) {
- final int speicher = i;
- buttons[speicher].addActionListener(new ActionListener() {
- public void actionPerformed(ActionEvent e) {
- if (spieler == 'X') {
- spielerAnzeige.setBackground(hellblau);
- buttons[speicher].setBackground(rot);
- buttons[speicher].setText("X");
- buttons[speicher].setEnabled(false);
- spieler = 'O';
- } else {
- spielerAnzeige.setBackground(hellrot);
- buttons[speicher].setBackground(blau);
- buttons[speicher].setText("O");
- buttons[speicher].setEnabled(false);
- spieler = 'X';
- }
- searchForWinner();
- spielerAnzeige.setText(spieler + " ist dran.");
- }
- });
- }
- }
- public void sendMessage(String str) {
- JOptionPane optionPane = new JOptionPane(new JLabel(str, JLabel.CENTER));
- JDialog dialog = optionPane.createDialog("");
- dialog.setModal(true);
- dialog.setVisible(true);
- }
- public void searchForUnentschieden() {
- boolean frei = false;
- for (int i = 0; i < buttons.length; i++) {
- if (buttons[i].isEnabled()) {
- frei = true;
- }
- }
- if (!frei) {
- sendMessage("Unentschieden!");
- }
- }
- public void searchForWinner() {
- boolean gewonnen = false;
- String[] symbole = new String[] { "X", "O" };
- for (String symbol : symbole) {
- // ---
- // ###
- // ---
- for (int x = 0; x < 3 * 3; x += 3) {
- if (buttons[x].getText() == symbol
- && buttons[x + 1].getText() == symbol
- && buttons[x + 2].getText() == symbol) {
- setWinner(symbol);
- gewonnen = true;
- }
- }
- // -#-
- // -#-
- // -#-
- for (int y = 0; y < 3; y++) {
- if (buttons[y].getText() == symbol
- && buttons[y + 3].getText() == symbol
- && buttons[y + 6].getText() == symbol) {
- setWinner(symbol);
- gewonnen = true;
- }
- }
- // --#
- // -#-
- // #--
- if ((buttons[0].getText() == symbol
- && buttons[4].getText() == symbol && buttons[8].getText() == symbol)
- || (buttons[2].getText() == symbol
- && buttons[4].getText() == symbol && buttons[6]
- .getText() == symbol)) {
- setWinner(symbol);
- gewonnen = true;
- }
- }
- if (!gewonnen)
- searchForUnentschieden();
- }
- public void setWinner(String gewinner) {
- for (int i = 0; i < buttons.length; i++) {
- buttons[i].setEnabled(false);
- }
- sendMessage("Spieler " + gewinner + " hat gewonnen!");
- }
- public void restart() {
- for (int i = 0; i < buttons.length; i++) {
- buttons[i].setEnabled(true);
- buttons[i].setText("");
- buttons[i].setBackground(background);
- }
- spieler = 'X';
- }
- public void initButtons() {
- buttons = new JButton[9];
- for (int i = 0; i < buttons.length; i++) {
- buttons[i] = new JButton();
- buttons[i].setBackground(background);
- buttons[i].setFont(getFont().deriveFont(100F));
- add(buttons[i]);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement