/*
 * Jexxor.java
 *
 * Created on 26. Mai 2006
 */



/**
 *
 * @author daniel baier alias duddits
 */

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class jexxor extends JFrame implements ActionListener{
    
    String activity = "spieler1a.jpg";
    String filename =  "null.jpg";
    String filename1 =  "null.jpg";
    String filename2 =  "null.jpg";
    String filename3 =  "null.jpg";
    String filename4 =  "null.jpg";
    String filename5 =  "null.jpg";
    String filename6 =  "null.jpg";
    String filename7 =  "null.jpg";
    String filename8 =  "null.jpg";
    int timer = 1;
    JButton jb,jb1,jb2,jb3,jb4,jb5,jb6,jb7,jb8;
    JLabel jl,jl1,jlv;
    int spielfeld[][] = new int[3][3];
    boolean spieler1 = false;
    boolean spieler2 = false;
    static jexxor t;
    private Image icon;
    
    public jexxor(){
        super("J3XXO");
        setSize(400,400);
        getContentPane().setLayout(null);
        setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
        setMenuBar(new MenuJexxo(this));
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        setLocation(screenSize.width / 2 - 400 / 2,
                screenSize.height / 2 - 400 / 2);
        
        icon = Toolkit.getDefaultToolkit().getImage("logo.jpg");
		setIconImage(icon);// setzt das Bild als Icon des Frames
        int i, j;
        for (i = 0, j = 0; i < 3 && j < 3; i++, j++) {
            spielfeld[i][j] = 0;
        }
        
        
        jl = new JLabel(new ImageIcon(activity));
        jl.setBounds(50,20,100,35);
        getContentPane().add(jl);
        
        jlv = new JLabel("vs.");
        jlv.setBounds(185,20,50,35);
        getContentPane().add(jlv);
        
        jl1 = new JLabel(new ImageIcon("spieler2.jpg"));
        jl1.setBounds(230,20,100,35);
        getContentPane().add(jl1);
        
        
        //erste Reihe
        jb = new JButton(new ImageIcon(filename));
        jb.setBounds(70,70,75,75);
        jb.addActionListener(this);
        jb.setActionCommand("00");
        getContentPane().add(jb);
        
        jb1 = new JButton(new ImageIcon(filename1));
        jb1.setBounds(70,150,75,75);
        jb1.addActionListener(this);
        jb1.setActionCommand("10");
        getContentPane().add(jb1);
        
        jb2 = new JButton(new ImageIcon(filename2));
        jb2.setBounds(70,230,75,75);
        jb2.addActionListener(this);
        jb2.setActionCommand("20");
        getContentPane().add(jb2);
        
        
        //zweite Reihe
        jb3 = new JButton(new ImageIcon(filename3));
        jb3.setBounds(150,70,75,75);
        jb3.addActionListener(this);
        jb3.setActionCommand("01");
        getContentPane().add(jb3);
        
        jb4 = new JButton(new ImageIcon(filename4));
        jb4.setBounds(150,150,75,75);
        jb4.addActionListener(this);
        jb4.setActionCommand("11");
        getContentPane().add(jb4);
        
        jb5 = new JButton(new ImageIcon(filename5));
        jb5.setBounds(150,230,75,75);
        jb5.addActionListener(this);
        jb5.setActionCommand("21");
        getContentPane().add(jb5);
        
        
        //dritte Reihe
        jb6 = new JButton(new ImageIcon(filename6));
        jb6.setBounds(230,70,75,75);
        jb6.addActionListener(this);
        jb6.setActionCommand("02");
        getContentPane().add(jb6);
        
        jb7 = new JButton(new ImageIcon(filename7));
        jb7.setBounds(230,150,75,75);
        jb7.addActionListener(this);
        jb7.setActionCommand("12");
        getContentPane().add(jb7);
        
        jb8 = new JButton(new ImageIcon(filename8));
        jb8.setBounds(230,230,75,75);
        jb8.addActionListener(this);
        jb8.setActionCommand("22");
        getContentPane().add(jb8);
        
        
    }
    
    
    public void actionPerformed(ActionEvent e){
        String getaction = e.getActionCommand();
        jl1.validate();
        jl1.setIcon(new ImageIcon("spieler2a.jpg"));
        if(timer == 1){
            jl.setIcon(new ImageIcon("spieler1a.jpg"));
            jl1.setIcon(new ImageIcon("spieler2.jpg"));
        }else if (timer==2){
            jl1.setIcon(new ImageIcon("spieler2a.jpg"));
            jl.setIcon(new ImageIcon("spieler1.jpg"));
        }
        
        if(timer ==1 && getaction.equals("11")){
            if(filename4.equals("null.jpg")){
                filename4 ="x.jpg";
                            spielfeld[1][1] = 1;
            timer = 2;
                jb4.setIcon(new ImageIcon(filename4));
            }
        }else if(timer ==2 && getaction.equals("11")){
            if(filename4.equals("null.jpg")){
                filename4 ="kreis.jpg";
                            spielfeld[1][1] = 2;
            timer =1;
                jb4.setIcon(new ImageIcon(filename4));
            }
        }
        if(timer ==1 && getaction.equals("21")){
            if(filename5.equals("null.jpg")){
                filename5 ="x.jpg";
                            spielfeld[2][1] = 1;
            timer = 2;
                jb5.setIcon(new ImageIcon(filename5));
            }
        }else if(timer ==2 && getaction.equals("21")){
            if(filename5.equals("null.jpg")){
                filename5 ="kreis.jpg";
                            spielfeld[2][1] = 2;
            timer =1;
                jb5.setIcon(new ImageIcon(filename5));
            }
        }if(timer ==1 && getaction.equals("10")){
            if(filename1.equals("null.jpg")){
                filename1 ="x.jpg";
                            spielfeld[1][0] = 1;
            timer = 2;
                jb1.setIcon(new ImageIcon(filename1));
            }
        }else if(timer ==2 && getaction.equals("10")){
            if(filename1.equals("null.jpg")){
                filename1 ="kreis.jpg";
                            spielfeld[1][0] = 2;
            timer =1;
                jb1.setIcon(new ImageIcon(filename1));
            }
        }
        if(timer ==1 && getaction.equals("01")){
            if(filename3.equals("null.jpg")){
                filename3 ="x.jpg";
                            spielfeld[0][1] = 1;
            timer = 2;
                jb3.setIcon(new ImageIcon(filename3));
            }
        }else if(timer ==2 && getaction.equals("01")){
            if(filename3.equals("null.jpg")){
                filename3 ="kreis.jpg";
                            spielfeld[0][1] = 2;
            timer =1;
                jb3.setIcon(new ImageIcon(filename3));
            }
        }
        if(timer ==1 && getaction.equals("20")){
            if(filename2.equals("null.jpg")){
                filename2 ="x.jpg";
                            spielfeld[2][0] = 1;
            timer = 2;
                jb2.setIcon(new ImageIcon(filename2));
            }
        }else if(timer ==2 && getaction.equals("20")){
            if(filename2.equals("null.jpg")){
                filename2 ="kreis.jpg";
                            spielfeld[2][0] = 2;
            timer =1;
                jb2.setIcon(new ImageIcon(filename2));
            }
        }
        if(timer ==1 && getaction.equals("02")){
            if(filename6.equals("null.jpg")){
                filename6 ="x.jpg";
                            spielfeld[0][2] = 1;
            timer = 2;
                jb6.setIcon(new ImageIcon(filename6));
            }
        }else if(timer ==2 && getaction.equals("02")){
            if(filename6.equals("null.jpg")){
                filename6 ="kreis.jpg";
                            spielfeld[0][2] = 2;
            timer =1;
                jb6.setIcon(new ImageIcon(filename6));
            }
        }
        if(timer ==1 && getaction.equals("00")){
            spielfeld[0][0] = 1;
            timer = 2;
            if(filename.equals("null.jpg")){
                filename ="x.jpg";
                jb.setIcon(new ImageIcon(filename));
            }
        }else if(timer ==2 && getaction.equals("00")){
            if(filename.equals("null.jpg")){
                filename ="kreis.jpg";
                            spielfeld[0][0] = 2;
            timer =1;
                jb.setIcon(new ImageIcon(filename));
            }
        }
        if(timer ==1 && getaction.equals("22")){

            if(filename8.equals("null.jpg")){
                filename8 ="x.jpg";
                            spielfeld[2][2] = 1;
            timer = 2;
                jb8.setIcon(new ImageIcon(filename8));
            }
        }else if(timer ==2 && getaction.equals("22")){
            if(filename8.equals("null.jpg")){
                filename8 ="kreis.jpg";
                            timer =1;
                spielfeld[2][2] = 2;
                jb8.setIcon(new ImageIcon(filename8));
            }
        }
        if(timer ==1 && getaction.equals("12")){
            jb7.setActionCommand("player1-12");
            if(filename7.equals("null.jpg")){
                filename7 ="x.jpg";
                            timer = 2;
                spielfeld[1][2] = 1;
                jb7.setIcon(new ImageIcon(filename7));
            }
        }else if(timer ==2 && getaction.equals("12")){
            
            if(filename7.equals("null.jpg")){
                filename7 ="kreis.jpg";
                spielfeld[1][2] = 2;
                timer =1;
                jb7.setIcon(new ImageIcon(filename7));
            }
        }
        
        
        
        int i, j;
        for (i = 0, j = 0; j < spielfeld.length && i < spielfeld.length; j++, i++) {
            // Überprüfung Spieler 1
            if ((spielfeld[0][j] == 1 && spielfeld[1][j] == 1 && spielfeld[2][j] == 1)
            || (spielfeld[j][0] == 1 && spielfeld[j][1] == 1 && spielfeld[j][2] == 1)
            || (spielfeld[0][0] == 1 && spielfeld[1][1] == 1 && spielfeld[2][2] == 1)
            || (spielfeld[2][0] == 1 && spielfeld[1][1] == 1 && spielfeld[0][2] == 1)) {
                spieler1 = true;
            }
            
            // Überprüfung Spieler 2
            if ((spielfeld[0][j] == 2 && spielfeld[1][j] == 2 && spielfeld[2][j] == 2)
            || (spielfeld[j][0] == 2 && spielfeld[j][1] == 2 && spielfeld[j][2] == 2)
            || (spielfeld[0][0] == 2 && spielfeld[1][1] == 2 && spielfeld[2][2] == 2)
            || (spielfeld[2][0] == 2 && spielfeld[1][1] == 2 && spielfeld[0][2] == 2)) {
                spieler2 = true;
            }
        }
        if (spieler1 == true) {
            String optionen[] = { "Ja", "Nein" };
            
            int n = JOptionPane
                    .showOptionDialog(
                    null,
                    "Spieler 1 hat gewonnen. Wollen Sie ein neues Spiel starten?", // Fragetext
                    "J3XXO", // Titel
                    JOptionPane.YES_NO_CANCEL_OPTION,
                    JOptionPane.QUESTION_MESSAGE, // Icon
                    null, optionen, optionen[0]);
            if (n == JOptionPane.YES_OPTION) {
                jexxor t1 = new jexxor();
                t.setVisible(false);
                t1.setResizable(false);
                t1.setVisible(true);
            }else{
                System.exit(0);
            }
        }
        if (spieler2 == true) {
            String optionen[] = { "Ja", "Nein" };
            
            int n = JOptionPane
                    .showOptionDialog(
                    null,
                    "Spieler 2 hat gewonnen. Wollen Sie ein neues Spiel starten?", // Fragetext
                    "J3XXO", // Titel
                    JOptionPane.YES_NO_CANCEL_OPTION,
                    JOptionPane.QUESTION_MESSAGE, // Icon
                    null, optionen, optionen[0]);
            if (n == JOptionPane.YES_OPTION) {
                jexxor t1 = new jexxor();
                t.setVisible(false);
                t1.setResizable(false);
                t1.setVisible(true);
            }else{
                System.exit(0);
            }
        }
        
        if (getaction.equals("Ãœber den Autor")) {
           JLabel link = new JLabel("<html>Enwickelt für Duddits Laboratory von Daniel Baier<br>(c) Copyright Jaditor contributors and others 2005, 2006.  All rights reserved.<br>This product includes software developed by the<br>Duddits Laboratory Team <font color=0000FF><u>http://www.remoteshell-security.com</u></font></html>");
link.setCursor( new Cursor(Cursor.HAND_CURSOR) ); //Ich hoffe ich hab das jetzt mal auf anhieb richtig eingetippt
link.addMouseListener( new MouseAdapter() {
    public void mouseReleased( MouseEvent me ) {
        if(me.getButton()==me.BUTTON1) {
            try {
                Runtime.getRuntime().exec("C:\\Programme\\Internet Explorer\\IEXPLORE.EXE http://www.remoteshell-security.com");
            }
            catch(Exception e)
            {
                try{
                Runtime.getRuntime().exec("firefox http://www.remoteshell-security.com");  
             }catch(Exception ee){
                 
             }
            }
        }
    }
});

JOptionPane.showMessageDialog(null,link,"J3XXO - Über den Autor", 1);
        }
        if (getaction.equals("Beenden")) {
            System.exit(0);
        }
         if (getaction.equals("Hilfe")) {
            Help h = new Help();
            h.setVisible(true);
        }if (getaction.equals("Verbinden")) {
             try {
            	 jexxor t1 = new jexxor();
                 t.setVisible(false);
                 t1.setResizable(false);
                 t1.setVisible(true);
        } catch (Exception eis) {System.out.println("Jexxor: Unbekannter Fehler");}
        }
    }
    public static void main(String[] args) {
        Splash sp = new Splash("deckblatt.jpg", t);
        try {
            Thread.sleep(6000);
            sp.setVisible(false);
        } catch (Exception e) {
            
        }
        t = new jexxor();
        t.setResizable(false);
        t.setVisible(true);
        
        
    }
    
}

