Advertisement
Guest User

Gui.java

a guest
Jan 11th, 2015
610
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.38 KB | None | 0 0
  1. package com.FisheyLP.TicTacToe;
  2.  
  3. import java.awt.Color;
  4. import java.awt.GridLayout;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7.  
  8. import javax.swing.JButton;
  9. import javax.swing.JDialog;
  10. import javax.swing.JFrame;
  11. import javax.swing.JLabel;
  12. import javax.swing.JOptionPane;
  13.  
  14. @SuppressWarnings("serial")
  15. public class Gui extends JFrame {
  16.  
  17.     JButton buttons[];
  18.     JButton restart, spielerAnzeige, exit;
  19.     char spieler;
  20.     Color background = new Color(235, 235, 200);
  21.     Color rot = new Color(205, 50, 50);
  22.     Color blau = new Color(25, 110, 190);
  23.     Color hellrot = new Color(215, 100, 100);
  24.     Color hellblau = new Color(95, 145, 200);
  25.  
  26.     public Gui() {
  27.         setVisible(true);
  28.         setTitle("Tic Tac Toe");
  29.         setSize(375, 500);
  30.         setMinimumSize(getSize());
  31.         setLayout(new GridLayout(4, 3));
  32.         setLocationRelativeTo(null);
  33.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  34.  
  35.         spieler = 'X';
  36.  
  37.         restart = new JButton("Neustart");
  38.         restart.setBackground(new Color(250, 250, 250));
  39.         add(restart);
  40.  
  41.         spielerAnzeige = new JButton(spieler + " ist dran.");
  42.         spielerAnzeige.setBackground(hellrot);
  43.         add(spielerAnzeige);
  44.  
  45.         exit = new JButton("Schließen");
  46.         exit.setBackground(new Color(250, 250, 250));
  47.         add(exit);
  48.  
  49.         initButtons();
  50.  
  51.         exit.addActionListener(new ActionListener() {
  52.             public void actionPerformed(ActionEvent e) {
  53.                 System.exit(0);
  54.             }
  55.         });
  56.  
  57.         restart.addActionListener(new ActionListener() {
  58.             public void actionPerformed(ActionEvent e) {
  59.                 restart();
  60.             }
  61.         });
  62.  
  63.         for (int i = 0; i < buttons.length; i++) {
  64.             final int speicher = i;
  65.             buttons[speicher].addActionListener(new ActionListener() {
  66.                 public void actionPerformed(ActionEvent e) {
  67.                     if (spieler == 'X') {
  68.                         spielerAnzeige.setBackground(hellblau);
  69.                         buttons[speicher].setBackground(rot);
  70.                         buttons[speicher].setText("X");
  71.                         buttons[speicher].setEnabled(false);
  72.                         spieler = 'O';
  73.                     } else {
  74.                         spielerAnzeige.setBackground(hellrot);
  75.                         buttons[speicher].setBackground(blau);
  76.                         buttons[speicher].setText("O");
  77.                         buttons[speicher].setEnabled(false);
  78.                         spieler = 'X';
  79.                     }
  80.                     searchForWinner();
  81.                     spielerAnzeige.setText(spieler + " ist dran.");
  82.                 }
  83.             });
  84.         }
  85.     }
  86.  
  87.     public void sendMessage(String str) {
  88.         JOptionPane optionPane = new JOptionPane(new JLabel(str, JLabel.CENTER));
  89.         JDialog dialog = optionPane.createDialog("");
  90.         dialog.setModal(true);
  91.         dialog.setVisible(true);
  92.     }
  93.  
  94.     public void searchForUnentschieden() {
  95.         boolean frei = false;
  96.         for (int i = 0; i < buttons.length; i++) {
  97.             if (buttons[i].isEnabled()) {
  98.                 frei = true;
  99.             }
  100.         }
  101.         if (!frei) {
  102.             sendMessage("Unentschieden!");
  103.         }
  104.     }
  105.  
  106.     public void searchForWinner() {
  107.         boolean gewonnen = false;
  108.         String[] symbole = new String[] { "X", "O" };
  109.         for (String symbol : symbole) {
  110.             // ---
  111.             // ###
  112.             // ---
  113.             for (int x = 0; x < 3 * 3; x += 3) {
  114.                 if (buttons[x].getText() == symbol
  115.                         && buttons[x + 1].getText() == symbol
  116.                         && buttons[x + 2].getText() == symbol) {
  117.                     setWinner(symbol);
  118.                     gewonnen = true;
  119.                 }
  120.             }
  121.             // -#-
  122.             // -#-
  123.             // -#-
  124.             for (int y = 0; y < 3; y++) {
  125.                 if (buttons[y].getText() == symbol
  126.                         && buttons[y + 3].getText() == symbol
  127.                         && buttons[y + 6].getText() == symbol) {
  128.                     setWinner(symbol);
  129.                     gewonnen = true;
  130.                 }
  131.             }
  132.             // --#
  133.             // -#-
  134.             // #--
  135.             if ((buttons[0].getText() == symbol
  136.                     && buttons[4].getText() == symbol && buttons[8].getText() == symbol)
  137.                     || (buttons[2].getText() == symbol
  138.                             && buttons[4].getText() == symbol && buttons[6]
  139.                             .getText() == symbol)) {
  140.                 setWinner(symbol);
  141.                 gewonnen = true;
  142.             }
  143.         }
  144.  
  145.         if (!gewonnen)
  146.             searchForUnentschieden();
  147.     }
  148.  
  149.     public void setWinner(String gewinner) {
  150.         for (int i = 0; i < buttons.length; i++) {
  151.             buttons[i].setEnabled(false);
  152.         }
  153.         sendMessage("Spieler " + gewinner + " hat gewonnen!");
  154.     }
  155.  
  156.     public void restart() {
  157.         for (int i = 0; i < buttons.length; i++) {
  158.             buttons[i].setEnabled(true);
  159.             buttons[i].setText("");
  160.             buttons[i].setBackground(background);
  161.         }
  162.         spieler = 'X';
  163.     }
  164.  
  165.     public void initButtons() {
  166.         buttons = new JButton[9];
  167.         for (int i = 0; i < buttons.length; i++) {
  168.             buttons[i] = new JButton();
  169.             buttons[i].setBackground(background);
  170.             buttons[i].setFont(getFont().deriveFont(100F));
  171.             add(buttons[i]);
  172.         }
  173.     }
  174. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement