
/**
 * Beschreiben Sie hier die Klasse Ball.
 * 
 * @author (Dennis Schweiger,(Christoph Ermer, Gabriel Gloßner, Leonhard Braun)) 
 * @version (eine Versionsnummer oder ein Datum)
 */
public class Ball
{
    // Instanzvariablen - ersetzen Sie das folgende Beispiel mit Ihren Variablen
    private Kreis ball;
    private ZEICHENFENSTER zeichenblatt;
    private Mittellinie mittellinie;
    private Player player_links;
    private Player player_rechts;
    private Spielfeldbegrenzung begrenzung;
    private Punkteanzeige anzeige1;
    private Punkteanzeige anzeige2;
    
    private int x_ball;
    private int y_ball;
    private int delta_x;
    private int delta_y;
    private double y1;
    private double y2;
    private double y3;

    /**
     * Konstruktor für Objekte der Klasse Ball
     */
    /**public Ball(int l_x_ball, int l_y_ball, ZEICHENFENSTER zeichenblatt)**/
    public Ball(int x_ball, int y_ball, ZEICHENFENSTER zeichenblatt)
    {
        // Instanzvariable initialisieren
        /**x_ball = l_x_ball;
        y_ball = l_y_ball;
        zeichenblatt = new ZEICHENFENSTER("Zeichnung");**/
        zeichneBall(x_ball, y_ball, zeichenblatt);
        /**bewegeBall(x_ball, y_ball, zeichenblatt);**/
                        
        /**delta_x = (int)(Math.random()*10);**/
        delta_x = 1;
        
        if(Math.random()>0.5)
        {
            delta_x = -delta_x;
            x_ball = x_ball-10;
        }
        
        y1 = Math.random();
        while(y1>0.3)
        {
            if(Math.random()>0.05)
            {
                y1 = Math.random();
                
                if(y1>0.1)
                {
                   y1 = Math.random();
                }
            }
        }
        y2 = 10*y1;
        
        if(Math.random()>0.5)
        {
            y2 = -y2;
        }

        delta_y = (int) y2;

        y3 = y2; 
    }

    /**
     * Methode zum Zeichnen eines Balles
     */
    public void zeichneBall(int x_ball, int y_ball, ZEICHENFENSTER zeichenblatt)
    {
        ball = new Kreis(10, x_ball, y_ball, 8);
        zeichenblatt.fuelleKreis(ball.getxMitte(), ball.getyMitte(), ball.getradius(), ball.getfarbnummer());
    }
    
    public void horizontalBewegen(int x_ball, int y_ball, int delta_x, ZEICHENFENSTER zeichenblatt)
    {
       zeichenblatt.loescheKreis(ball.getxMitte(), ball.getyMitte(), ball.getradius());
       ball.setxMitte(ball.getxMitte()+delta_x);
       zeichenblatt.fuelleKreis(ball.getxMitte(), ball.getyMitte(), ball.getradius(), ball.getfarbnummer()); 
    }
    
     public void vertikalBewegen(int x_ball, int y_ball, int delta_y, ZEICHENFENSTER zeichenblatt)
    {
       zeichenblatt.loescheKreis(ball.getxMitte(), ball.getyMitte(), ball.getradius());
       ball.setyMitte(ball.getyMitte()+delta_y);
       zeichenblatt.fuelleKreis(ball.getxMitte(), ball.getyMitte(), ball.getradius(), ball.getfarbnummer());
    }
    
    public void erneuereSpielfeld (Player player_links, Player player_rechts, Mittellinie mittellinie, 
                    Spielfeldbegrenzung begrenzung, Punkteanzeige anzeige1, Punkteanzeige anzeige2, 
                    int y_recht, int y_recht2, int nummer1, int nummer2, ZEICHENFENSTER zeichenblatt)
    {
        mittellinie.zeichneMittellinie(zeichenblatt);
        /**player_links.zeichnePlayer(zeichenblatt);
        player_rechts.zeichnePlayer(zeichenblatt);**/
        begrenzung.zeichneBegrenzung(zeichenblatt);
        anzeige1.Nummernanzeige(nummer1, zeichenblatt);
        anzeige2.Nummernanzeige(nummer2, zeichenblatt);
        zeichenblatt.warte(5);
    }
    
    public void setzezurückBall(int x_ball, int  y_ball)
    {
      ball.setxMitte(x_ball);
      ball.setyMitte(y_ball);
      
      delta_x = 1;
        
        if(Math.random()>0.5)
        {
            delta_x = -delta_x;
            x_ball = x_ball-10;
        }
        
        y1 = Math.random();
        while(y1>0.3)
        {
            if(Math.random()>0.05)
            {
                y1 = Math.random();
                
                if(y1>0.1)
                {
                   y1 = Math.random();
                }
            }
        }
        y2 = 10*y1;
        
        if(Math.random()>0.5)
        {
            y2 = -y2;
        }

        delta_y = (int) y2;

        y3 = y2; 
    }
    
    public int bewegeBall(Player player_links, Player player_rechts, Mittellinie mittellinie, 
                    Spielfeldbegrenzung begrenzung, Punkteanzeige anzeige1, Punkteanzeige anzeige2, 
                    int y_recht, int y_recht2, int nummer1, int nummer2, ZEICHENFENSTER zeichenblatt)
    {
       
        
        /**
        for (int i = 1; i < 5000; i = i + 1)
        {**/
        if(ball.getyMitte() > 50 && ball.getyMitte() < 850 && ball.getxMitte() > 40 && ball.getxMitte() < 1260)
        { 
           
              
             if(-1<y2 && y2<1)
             {
                delta_y = 0;
                y3 = y3+y2;
                if(y3>=1 || y3<=-1)
                {
                    delta_y = (int) y3;
                    y3 = 0;
                }
             }  

            horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
            vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);
            
            erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                               y_recht, y_recht2, nummer1, nummer2, zeichenblatt);        
            /**
             * 
            mittellinie = new Mittellinie(zeichenblatt);
            mittellinie.zeichneMittellinie(zeichenblatt);
            player_links.zeichnePlayer(0, y_recht, zeichenblatt);
            player_rechts.zeichnePlayer(1260, y_recht2, 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);
            zeichenblatt.warte(2);
            **/
            
           
        }
          
          
          /**if(ball.getyMitte() <= 50 || ball.getyMitte() >= 920)**/
        else
        { 
           if(ball.getxMitte() == 10)
           {
            zeichenblatt.warte(1000);
            zeichenblatt.loescheKreis(ball.getxMitte(), ball.getyMitte(), ball.getradius());
            return 1;  /**für links**/
           }
           
           if(ball.getxMitte() == 1290)
           {
            zeichenblatt.warte(1000);
            zeichenblatt.loescheKreis(ball.getxMitte(), ball.getyMitte(), ball.getradius());
            return 2;  /**für rechts**/
           }
            
          if(ball.getyMitte() <= 50 || ball.getyMitte() >= 850)
          {
             /**for(int k = 1; k < 10; k = k + 1)
             {**/
              if(-1<y2 && y2<1)
              {
                  y2 = -1*y2;
                  y3 = y2;
                  delta_y = 0;
                  y3 = y3+y2;
                
                  if(y3>=1 || y3<=-1)
                  {
                      delta_y = (int) y3;
                      y3 = 0;
                  }
              }
           
              else
              {
                  delta_y = -delta_y; 
              }
            
              horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
              vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);
              
              erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                 y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
             
             while(ball.getyMitte() <= 50 || ball.getyMitte() >= 850)
             {
                if(-1<y2 && y2<1)
               {
                delta_y = 0;
                y3 = y3+y2;
                if(y3>=1 || y3<=-1)
                {
                    delta_y = (int) y3;
                    y3 = 0;
                }
               }  

               horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
               vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

               erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                  y_recht, y_recht2, nummer1, nummer2, zeichenblatt); 
             }
             
          } 
            
            if(ball.getxMitte() <= 40 /** && ball.getxMitte() >= 10**/)
            {
             if(ball.getyMitte() > player_links.getyPos()-10 && ball.getyMitte() < player_links.getyPos()+110)
             { 
               /**for(int j = 1; j < 10; j = j + 1)
               {**/
                
                if(ball.getyMitte() > player_links.getyPos()-10 && ball.getyMitte() <= player_links.getyPos())
                {
                      y2 = y2-1.2;
                      if(-1<y2 && y2<1)
                      {
                           delta_y = 0;
                           y3 = y3+y2;
                           if(y3>=1 || y3<=-1)
                           {
                               delta_y = (int) y3;
                               y3 = 0;
                           }
                      } 
                      else
                      {
                        delta_y = (int) y2;
                      }
                  
                      
                      delta_x = -delta_x;
               
                      horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                      vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);
            
                      erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                         y_recht, y_recht2, nummer1, nummer2, zeichenblatt); 
                      
                      while(ball.getxMitte() <= 40 && ball.getxMitte() >= 10)
                      {
                       if(-1<y2 && y2<1)
                       {
                          delta_y = 0;
                          y3 = y3+y2;
                          if(y3>=1 || y3<=-1)
                          {
                              delta_y = (int) y3;
                              y3 = 0;
                          }
                       }  

                       horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                       vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);
                       
                       erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                          y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      }
                           
                }
                
                if(ball.getyMitte() > player_links.getyPos() && ball.getyMitte() <= player_links.getyPos()+10)
                {
                      y2 = y2-0.8;
                      if(-1<y2 && y2<1)
                      {
                           delta_y = 0;
                           y3 = y3+y2;
                           if(y3>=1 || y3<=-1)
                           {
                               delta_y = (int) y3;
                               y3 = 0;
                           }
                      } 
                      else
                      {
                        delta_y = (int) y2;
                      }
                  
                      delta_x = -delta_x;
               
                      horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                      vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);
            
                      erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                         y_recht, y_recht2, nummer1, nummer2, zeichenblatt); 
                      
                      while(ball.getxMitte() <= 40 && ball.getxMitte() >= 10)
                      {
                       if(-1<y2 && y2<1)
                       {
                          delta_y = 0;
                          y3 = y3+y2;
                          if(y3>=1 || y3<=-1)
                          {
                              delta_y = (int) y3;
                              y3 = 0;
                          }
                       }  

                       horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                       vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);
            
                       erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                          y_recht, y_recht2, nummer1, nummer2, zeichenblatt); 
                      }      
                }
                
                if(ball.getyMitte() > player_links.getyPos()+10 && ball.getyMitte() <= player_links.getyPos()+20)
                {
                      y2 = y2-0.4;
                      if(-1<y2 && y2<1)
                      {
                           delta_y = 0;
                           y3 = y3+y2;
                           if(y3>=1 || y3<=-1)
                           {
                               delta_y = (int) y3;
                               y3 = 0;
                           }
                      } 
                      else
                      {
                        delta_y = (int) y2;
                      }
                  
                      delta_x = -delta_x;
               
                      horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                      vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);
            
                      erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                         y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      
                      while(ball.getxMitte() <= 40 && ball.getxMitte() >= 10)
                      {
                       if(-1<y2 && y2<1)
                       {
                          delta_y = 0;
                          y3 = y3+y2;
                          if(y3>=1 || y3<=-1)
                          {
                              delta_y = (int) y3;
                              y3 = 0;
                          }
                       }  

                       horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                       vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);
        
                       erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                          y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      }
                           
                }
                
                if(ball.getyMitte() > player_links.getyPos()+20 && ball.getyMitte() <= player_links.getyPos()+80)
                {
                      if(-1<y2 && y2<1)
                      {
                           delta_y = 0;
                           y3 = y3+y2;
                           if(y3>=1 || y3<=-1)
                           {
                               delta_y = (int) y3;
                               y3 = 0;
                           }
                      }  
                  
                      delta_x = -delta_x;
               
                      horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                      vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

                      erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                         y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      
                      while(ball.getxMitte() <= 40 && ball.getxMitte() >= 10)
                      {
                       if(-1<y2 && y2<1)
                       {
                          delta_y = 0;
                          y3 = y3+y2;
                          if(y3>=1 || y3<=-1)
                          {
                              delta_y = (int) y3;
                              y3 = 0;
                          }
                       }  

                       horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                       vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

                       erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                          y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      }
                           
                }
                
                if(ball.getyMitte() > player_links.getyPos()+80 && ball.getyMitte() <= player_links.getyPos()+90)
                {
                      y2 = y2+0.4;
                      if(-1<y2 && y2<1)
                      {
                           delta_y = 0;
                           y3 = y3+y2;
                           if(y3>=1 || y3<=-1)
                           {
                               delta_y = (int) y3;
                               y3 = 0;
                           }
                      } 
                      else
                      {
                        delta_y = (int) y2;
                      }
                  
                      delta_x = -delta_x;
               
                      horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                      vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

                      erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                         y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      
                      while(ball.getxMitte() <= 40 && ball.getxMitte() >= 10)
                      {
                       if(-1<y2 && y2<1)
                       {
                          delta_y = 0;
                          y3 = y3+y2;
                          if(y3>=1 || y3<=-1)
                          {
                              delta_y = (int) y3;
                              y3 = 0;
                          }
                       }  

                       horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                       vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

                       erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                          y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      }
                           
                }
                
                if(ball.getyMitte() > player_links.getyPos()+90 && ball.getyMitte() <= player_links.getyPos()+100)
                {
                      y2 = y2+0.8;
                      if(-1<y2 && y2<1)
                      {
                           delta_y = 0;
                           y3 = y3+y2;
                           if(y3>=1 || y3<=-1)
                           {
                               delta_y = (int) y3;
                               y3 = 0;
                           }
                      } 
                      else
                      {
                        delta_y = (int) y2;
                      }
                  
                      delta_x = -delta_x;
               
                      horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                      vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

                      erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                         y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      
                      while(ball.getxMitte() <= 40 && ball.getxMitte() >= 10)
                      {
                       if(-1<y2 && y2<1)
                       {
                          delta_y = 0;
                          y3 = y3+y2;
                          if(y3>=1 || y3<=-1)
                          {
                              delta_y = (int) y3;
                              y3 = 0;
                          }
                       }  

                       horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                       vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

                       erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                          y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      }   
                }
                
                if(ball.getyMitte() > player_links.getyPos()+100 && ball.getyMitte() <= player_links.getyPos()+110)
                {
                      y2 = y2+1.2;
                      if(-1<y2 && y2<1)
                      {
                           delta_y = 0;
                           y3 = y3+y2;
                           if(y3>=1 || y3<=-1)
                           {
                               delta_y = (int) y3;
                               y3 = 0;
                           }
                      } 
                      else
                      {
                        delta_y = (int) y2;
                      }
                  
                      delta_x = -delta_x;
               
                      horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                      vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

                      erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                         y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      
                      while(ball.getxMitte() <= 40 && ball.getxMitte() >= 10)
                      {
                       if(-1<y2 && y2<1)
                       {
                          delta_y = 0;
                          y3 = y3+y2;
                          if(y3>=1 || y3<=-1)
                          {
                              delta_y = (int) y3;
                              y3 = 0;
                          }
                       }  

                       horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                       vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

                       erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                         y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      }
                      
                      
                           
                }
               /**}**/
             }
             else
             {
               if(-1<y2 && y2<1)
               {
                delta_y = 0;
                y3 = y3+y2;
                if(y3>=1 || y3<=-1)
                {
                    delta_y = (int) y3;
                    y3 = 0;
                }
               }   

               horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
               vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

               erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                         y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
             }
            }
               
             
            
          
             
             if(ball.getxMitte() >= 1260 /**&& ball.getxMitte() <= 1290**/)
             {
              if(ball.getyMitte() > player_rechts.getyPos()-10 && ball.getyMitte() < player_rechts.getyPos()+110)
              { 
               /**for(int j = 1; j < 10; j = j + 1)
               {**/
                if(ball.getyMitte() > player_rechts.getyPos()-10 && ball.getyMitte() < player_rechts.getyPos())
                {
                      y2 = y2-1.2;
                      if(-1<y2 && y2<1)
                      {
                           delta_y = 0;
                           y3 = y3+y2;
                           if(y3>=1 || y3<=-1)
                           {
                               delta_y = (int) y3;
                               y3 = 0;
                           }
                      } 
                      else
                      {
                        delta_y = (int) y2;
                      }
                  
                      
                      delta_x = -delta_x;
               
                      horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                      vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

                      erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                         y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      
                      while(ball.getxMitte() <= 40 && ball.getxMitte() >= 10)
                      {
                       if(-1<y2 && y2<1)
                       {
                          delta_y = 0;
                          y3 = y3+y2;
                          if(y3>=1 || y3<=-1)
                          {
                              delta_y = (int) y3;
                              y3 = 0;
                          }
                       }  

                       horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                       vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

                       erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                         y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      }
                           
                }
                
                if(ball.getyMitte() > player_rechts.getyPos() && ball.getyMitte() < player_rechts.getyPos()+10)
                {
                      y2 = y2-0.8;
                      if(-1<y2 && y2<1)
                      {
                           delta_y = 0;
                           y3 = y3+y2;
                           if(y3>=1 || y3<=-1)
                           {
                               delta_y = (int) y3;
                               y3 = 0;
                           }
                      } 
                      else
                      {
                        delta_y = (int) y2;
                      }
                  
                      delta_x = -delta_x;
               
                      horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                      vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

                      erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                         y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      
                      while(ball.getxMitte() <= 40 && ball.getxMitte() >= 10)
                      {
                       if(-1<y2 && y2<1)
                       {
                          delta_y = 0;
                          y3 = y3+y2;
                          if(y3>=1 || y3<=-1)
                          {
                              delta_y = (int) y3;
                              y3 = 0;
                          }
                       }  

                       horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                       vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

                       erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                          y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      }
                           
                }
                
                if(ball.getyMitte() > player_rechts.getyPos()+10 && ball.getyMitte() < player_rechts.getyPos()+20)
                {
                      y2 = y2-0.4;
                      if(-1<y2 && y2<1)
                      {
                           delta_y = 0;
                           y3 = y3+y2;
                           if(y3>=1 || y3<=-1)
                           {
                               delta_y = (int) y3;
                               y3 = 0;
                           }
                      } 
                      else
                      {
                        delta_y = (int) y2;
                      }
                  
                      delta_x = -delta_x;
               
                      horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                      vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

                      erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                         y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      
                      while(ball.getxMitte() <= 40 && ball.getxMitte() >= 10)
                      {
                       if(-1<y2 && y2<1)
                       {
                          delta_y = 0;
                          y3 = y3+y2;
                          if(y3>=1 || y3<=-1)
                          {
                              delta_y = (int) y3;
                              y3 = 0;
                          }
                       }  

                       horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                       vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

                       erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                         y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      }
                           
                }
                
                if(ball.getyMitte() > player_rechts.getyPos()+20 && ball.getyMitte() < player_rechts.getyPos()+80)
                {
                      if(-1<y2 && y2<1)
                      {
                           delta_y = 0;
                           y3 = y3+y2;
                           if(y3>=1 || y3<=-1)
                           {
                               delta_y = (int) y3;
                               y3 = 0;
                           }
                      }  
                  
                      delta_x = -delta_x;
               
                      horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                      vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

                      erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                         y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      
                      while(ball.getxMitte() <= 40 && ball.getxMitte() >= 10)
                      {
                       if(-1<y2 && y2<1)
                       {
                          delta_y = 0;
                          y3 = y3+y2;
                          if(y3>=1 || y3<=-1)
                          {
                              delta_y = (int) y3;
                              y3 = 0;
                          }
                       }  

                       horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                       vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

                       erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                         y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      }
                           
                }
                
                if(ball.getyMitte() > player_rechts.getyPos()+80 && ball.getyMitte() < player_rechts.getyPos()+90)
                {
                      y2 = y2+0.4;
                      if(-1<y2 && y2<1)
                      {
                           delta_y = 0;
                           y3 = y3+y2;
                           if(y3>=1 || y3<=-1)
                           {
                               delta_y = (int) y3;
                               y3 = 0;
                           }
                      } 
                      else
                      {
                        delta_y = (int) y2;
                      }
                  
                      delta_x = -delta_x;
               
                      horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                      vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

                      erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                         y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      
                      while(ball.getxMitte() <= 40 && ball.getxMitte() >= 10)
                      {
                       if(-1<y2 && y2<1)
                       {
                          delta_y = 0;
                          y3 = y3+y2;
                          if(y3>=1 || y3<=-1)
                          {
                              delta_y = (int) y3;
                              y3 = 0;
                          }
                       }  

                       horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                       vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

                       erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                         y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      }
                           
                }
                
                if(ball.getyMitte() > player_rechts.getyPos()+90 && ball.getyMitte() < player_rechts.getyPos()+100)
                {
                      y2 = y2+0.8;
                      if(-1<y2 && y2<1)
                      {
                           delta_y = 0;
                           y3 = y3+y2;
                           if(y3>=1 || y3<=-1)
                           {
                               delta_y = (int) y3;
                               y3 = 0;
                           }
                      } 
                      else
                      {
                        delta_y = (int) y2;
                      }
                  
                      delta_x = -delta_x;
               
                      horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                      vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

                      erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                         y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      
                      while(ball.getxMitte() <= 40 && ball.getxMitte() >= 10)
                      {
                       if(-1<y2 && y2<1)
                       {
                          delta_y = 0;
                          y3 = y3+y2;
                          if(y3>=1 || y3<=-1)
                          {
                              delta_y = (int) y3;
                              y3 = 0;
                          }
                       }  

                       horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                       vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

                       erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                         y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      }     
                }
                
                if(ball.getyMitte() > player_rechts.getyPos()+100 && ball.getyMitte() < player_rechts.getyPos()+110)
                {
                      y2 = y2+1.2;
                      if(-1<y2 && y2<1)
                      {
                           delta_y = 0;
                           y3 = y3+y2;
                           if(y3>=1 || y3<=-1)
                           {
                               delta_y = (int) y3;
                               y3 = 0;
                           }
                      } 
                      else
                      {
                        delta_y = (int) y2;
                      }
                  
                      delta_x = -delta_x;
               
                      horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                      vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

                      erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                         y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      
                      while(ball.getxMitte() <= 40 && ball.getxMitte() >= 10)
                      {
                       if(-1<y2 && y2<1)
                       {
                          delta_y = 0;
                          y3 = y3+y2;
                          if(y3>=1 || y3<=-1)
                          {
                              delta_y = (int) y3;
                              y3 = 0;
                          }
                       }  

                       horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
                       vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

                       erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                         y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
                      }   
                }
               
              }
              else
              {
               if(-1<y2 && y2<1)
               {
                delta_y = 0;
                y3 = y3+y2;
                if(y3>=1 || y3<=-1)
                {
                    delta_y = (int) y3;
                    y3 = 0;
                }
               }  

               horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
               vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);

               erneuereSpielfeld (player_links, player_rechts, mittellinie, begrenzung, anzeige1, anzeige2, 
                                         y_recht, y_recht2, nummer1, nummer2, zeichenblatt);
              }
             }  
        } 
          
        
          
          
          /**else(y_ball <= 50 || y_ball >= 920)**/
        
          /**{ 
            if(ball.getyMitte() <= 50 || ball.getyMitte() >= 920)**/
            
           
      /** }**/
    
       return 0;
    }
            
          /**((((((((if(ball.getxMitte() <= 30 || ball.getxMitte() >= 1270) ))))))))
          
          if(ball.getxMitte() > 30 || ball.getxMitte() < 1270)
          {
              if(-1<y2 && y2<1)
                {
                 delta_y = 0;
                 y3 = y3+y2;
                 if(y3>=1 || y3<=-1)
                 {
                    delta_y = (int) y3;
                    y3 = 0;
                 }
                }   
                
               horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
               vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);
            
               mittellinie = new Mittellinie(zeichenblatt);
               mittellinie.zeichneMittellinie(zeichenblatt);
               player_links.zeichnePlayer(0, y_recht, zeichenblatt);
               player_rechts.zeichnePlayer(1260, y_recht2, 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);
               
               zeichenblatt.warte(2);
          }
          
          else
          {
              if(ball.getyMitte() > player_links.getyPos()-10 && ball.getyMitte() < player_links.getyPos()+110)
              { 
               if(-1<y2 && y2<1)
                {
                 delta_y = 0;
                 y3 = y3+y2;
                 if(y3>=1 || y3<=-1)
                 {
                    delta_y = (int) y3;
                    y3 = 0;
                 }
                }   
                  
               delta_x = -delta_x;
               
               horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
               vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);
            
               mittellinie = new Mittellinie(zeichenblatt);
               mittellinie.zeichneMittellinie(zeichenblatt);
               player_links.zeichnePlayer(0, y_recht, zeichenblatt);
               player_rechts.zeichnePlayer(1260, y_recht2, 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);
               
               zeichenblatt.warte(2);
              }
              
              if(ball.getyMitte() > player_rechts.getyPos()-10 && ball.getyMitte() < player_rechts.getyPos()+110)
              { 
               if(-1<y2 && y2<1)
                {
                 delta_y = 0;
                 y3 = y3+y2;
                 if(y3>=1 || y3<=-1)
                 {
                    delta_y = (int) y3;
                    y3 = 0;
                 }
                }   
                  
               delta_x = -delta_x;
               
               horizontalBewegen(x_ball, y_ball, delta_x, zeichenblatt);
               vertikalBewegen(x_ball, y_ball, delta_y, zeichenblatt);
            
               mittellinie = new Mittellinie(zeichenblatt);
               mittellinie.zeichneMittellinie(zeichenblatt);
               player_links.zeichnePlayer(0, y_recht, zeichenblatt);
               player_rechts.zeichnePlayer(1260, y_recht2, 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);
               
               zeichenblatt.warte(2);
              }
                      } **/

    }

    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
     /**
     * Verändere die Position des balles
     *
    public void verändereHorizontalePosition(int entfernung)
    {
        //nach rechts bewegen
         if (entfernung >0){   
        int i=0;
         while(i<entfernung)
        {
            ball.horizontalBewegen(6);
           
            i = i+6;
        }
        }
        //nach links bewegen
         else {
           int i=0;
        while(i>entfernung)
        {
            ball.horizontalBewegen(-6);
            
            i = i-6;
        }           

    }
    }     
    public void verändereVertikalePosition(int entfernung)
    {
        //nach unten bewegen
        if (entfernung >0){   
        int i=0;
        while(i<entfernung)
        {
            ball.vertikalBewegen(6);
            
            i = i+6;
        }
       }
       //nach oben bewegen
       else {
           int i=0;
        while(i>entfernung)
        {
           ball.vertikalBewegen (-6);
            i = i-6;
        }           
           
        } 
    }       
        public void bewegeZuPosition(int xPos, int yPos)
               {
        verändereHorizontalePosition(xPos-ball.gibXposition());
        verändereVertikalePosition(yPos-ball.gibYposition());
    }
    **/


