import java.awt.event.*;
import javax.swing.*;

/**
 * Chefklasse Spiel
 * 
 * @author (Dennis Schweiger) 
 * @version (0.1)
 */
public class Spiel
{
    // Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen
    private ZEICHENFENSTER zeichenblatt;
    private Ball ball;
    private Mittellinie mittellinie;
    private Player player_links;
    private Player player_rechts;
    private Spielfeldbegrenzung begrenzung;
    private Punkteanzeige anzeige1;
    private Punkteanzeige anzeige2;
    private int y_recht = 400;
    private int y_recht2 = 400;
    private int nummer1 = 0;
    private int nummer2 = 0;
    
    private JButton startknopf;
    private JButton player_links_rauf;
    private JButton player_links_runter;
    private JButton player_rechts_rauf;
    private JButton player_rechts_runter;
    
    
    /**
     * Konstruktor, der das Zeichenblatt erzeugt und die Methode spiele() ausführt
    **/
    public Spiel()
    {
        // Instanzvariable initialisieren
        zeichenblatt = new ZEICHENFENSTER("NLEG");
        spiele();
    }
    
    
    /**
     * Methode, die alle Elemente des Spiels erzeugt
    **/   
    public void spiele()
    {
            int x_ball = 655;
            int y_ball = 450;
            int seite = 0;
            
            mittellinie = new Mittellinie(zeichenblatt);
            mittellinie.zeichneMittellinie(zeichenblatt);
            player_links = new Player(0, y_recht, zeichenblatt);
            player_rechts = new Player(1260, y_recht2, zeichenblatt);
            player_links.zeichnePlayer(zeichenblatt);
            player_rechts.zeichnePlayer(zeichenblatt);
            begrenzung = new Spielfeldbegrenzung(zeichenblatt);
            begrenzung.zeichneBegrenzung(zeichenblatt);
            anzeige1 = new Punkteanzeige(nummer1, 0, zeichenblatt);
            anzeige1.Nummernanzeige(nummer1, zeichenblatt);
            anzeige2 = new Punkteanzeige(nummer2, 170, zeichenblatt);
            anzeige2.Nummernanzeige(nummer2, zeichenblatt);
            
            
           if (player_links.getyPos()>=90 && player_links.getyPos()<=810)
           {
            player_links_rauf = new JButton("                             player_links_rauf                              ");
            player_links_rauf.addActionListener(new ActionListener()
            { 
                public void actionPerformed(ActionEvent e)
                {
                    player_links.bewegePlayer_rauf(zeichenblatt);
                }
            }                         
            );
            zeichenblatt.komponenteHinzufuegen(player_links_rauf, "unten");
                    
            player_links_runter = new JButton("                             player_links_runter                            ");
            player_links_runter.addActionListener(new ActionListener()
            { 
                public void actionPerformed(ActionEvent e)
                {
                    player_links.bewegePlayer_runter(zeichenblatt);
                }
            }                         
            );
            zeichenblatt.komponenteHinzufuegen(player_links_runter, "unten");
            
            player_rechts_rauf = new JButton("                               player_rechts_rauf                                ");
            player_rechts_rauf.addActionListener(new ActionListener()
            { 
                public void actionPerformed(ActionEvent e)
                {
                    player_rechts.bewegePlayer_rauf(zeichenblatt);
                }
            }                         
            );
            zeichenblatt.komponenteHinzufuegen(player_rechts_rauf, "unten");
            
            player_rechts_runter = new JButton("                               player_rechts_runter                               ");
            player_rechts_runter.addActionListener(new ActionListener()
            { 
                public void actionPerformed(ActionEvent e)
                {
                    player_rechts.bewegePlayer_runter(zeichenblatt);
                }
            }                         
            );
            zeichenblatt.komponenteHinzufuegen(player_rechts_runter, "unten");
           }
          
            
           ball = new Ball(x_ball, y_ball, zeichenblatt);
           for (int i = 1; i<20;i++)
           {          
                    while (seite == 0 && nummer1 < 9 && nummer2 < 9)
                    {
                            seite = ball.bewegeBall(player_links, player_rechts, mittellinie, 
                            begrenzung, anzeige1, anzeige2, y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                       
                            if(seite == 1)
                            {
                                nummer2++;
                                anzeige2.Nummernanzeige(nummer2, zeichenblatt);
                            }
                            else
                            {
                                if(seite == 2)
                                {
                                    nummer1++;
                                    anzeige1.Nummernanzeige(nummer1, zeichenblatt);
                                }
                            }
               
                           
                    }
                    
                    seite = 0;
                    
                    ball.setzezurückBall(x_ball, y_ball);
           } 
   
    }
}
