Python2 Saved Program: placid-rain

facebook share

Here's the online compiler accompanied with IDE at your service. This is a saved code by one of our users. Try it out or save your own from the IDE page and don't forget to leave a feedback. You can find that at the bottom of the page.


#Come on. You can change the whole world with a few lines of code
from tkinter import *
from random import *

#zustand = (Ballkontakt, spieler mit letzten Ballkontakt, spieler in Ballbesitz, posBalli, posBallj, technik letzter Schuss)
# Fall spieler in Ballbesitz = -1 --> niemand in Ballbesitz
# Falls technik = -2 --> Einwurf
# Falls technik = -1 --> missglueckte annahme
# Falls technik = -3 --> Anstoss

def spiel(st):
     labelZahl.config(text="Das Spiel beginnt")    
     global eint_horizontal
     global eint_vertikal
     global breite
     global hoehe
     global zustand
     global positionenx
     global positioneny
     global verschiebung
     global spieler
     global torwarttech
     global bereit
     Lp1 = list()
     Lq1 = list()
     
     zähler = zustand[0]
     b_alt = zustand[3]
     h_alt = zustand[4]
     labelZustand_alt.config(text="Zustand: %i %i %i %i %i %i" %(zustand[0],zustand[1],zustand[2],zustand[3],zustand[4],zustand[5]))
     
     for i in range(0,2*spieler+1):
          m = bereit[i]
          bereit[i] = m-1
     
     labelZahl.config(text="bereit aktualisiert") 
     
     if zähler < 250:     
          if zustand[0]<1:
              bi = int(eint_horizontal/2)-1
              hi = int(eint_vertikal/2)-1
              x=spielerinfeld(bi,hi,Lp1,Lq1)
              zustand=[1,Lp1[0],Lp1[0],bi,hi,-1]
              del Lp1[:]
              del Lq1[:]
          elif zustand[5] == -2:
              bi = int(eint_horizontal/2)-1
              hi = int(eint_vertikal/2)-1
              x=spielerinfeld(bi,hi,Lp1,Lq1)
              zustand=[zähler+1,Lp1[0],Lp1[0],bi,hi,-1]
              del Lp1[:]
              del Lq1[:]   
          elif zustand[3] < 0:
              labelZahl.config(text="elif1")  
              if zustand[4] < 0 and zustand[1] < spieler:
                 Eckeq()
              elif zustand[4] > eint_vertikal-1 and zustand[1] < spieler:
                 Eckeq()
              elif zustand[4] == int(eint_vertikal/2) or   zustand[4] == int(eint_vertikal/2) -1:
                 labelZahl.config(text="abwehren")    
                 t=randint(0,torwarttech-1)
                 s=spielerinfeld(positionenx[zustand[1]],positioneny[zustand[1]],Lp1,Lq1)
                 labelZahl.config(text="abwehren2")
                 Abwehren(0,t,zustand[5],s,positioneny[zustand[1]],positionenx[zustand[1]])
                 del Lp1[:]
                 del Lq1[:]   
              else:
                 abstoss_p()
          elif zustand[3] > eint_horizontal -1 :
              labelZahl.config(text="elif2")  
              if zustand[4] < 0 and zustand[1] > spieler-1:
                 Eckep()
              elif  zustand[4] > (eint_vertikal-1) and zustand[1] > spieler-1:
                 Eckep()
              elif zustand[4] == int(eint_vertikal/2) or   zustand[4] == int(eint_vertikal/2) -1:
                 labelZahl.config(text="abwehern")    
                 t=randint(0,torwarttech-1)
                 s=spielerinfeld(positionenx[zustand[1]],positioneny[zustand[1]],Lp1,Lq1)
                 labelZahl.config(text="abwehren2")
                 Abwehren(spieler,t,zustand[5],s,positioneny[zustand[1]],positionenx[zustand[1]])
                 del Lp1[:]
                 del Lq1[:]     
              else:
                 labelZahl.config(text="elif22")  
                 abstoss_Q()             
          elif zustand[4] <0 or zustand[4] > eint_vertikal-1:
              labelZahl.config(text="elif3")   
              labelStrategie.config(text="einwurf") 
              if zustand[1] < spieler:
                 Einwurfq()
              else:
                 Einwurfp()
          elif zustand[2]==-1:
              labelZahl.config(text="elif4")   
              labelZahl.config(text="Ballannahme oder laufen")        
              labelZahl.config(text="B/L1")
              b = zustand[3]
              h = zustand[4]
              z=spielerinfeld(b,h,Lp1,Lq1)
              if z == 0:
                 labelStrategie.config(text="laufen_alle")
                 laufen_alle()
              else:
                 labelStrategie.config(text="Ballannahme")
                 Ballannahme(b,h,Lp1,Lq1,z)
              del Lp1[:]
              del Lq1[:]
          elif zustand[2] < spieler:
              labelStrategie.config(text="strategie")  
              if st == 1 or st == 3:
                 labelStrategie.config(text="strategie1") 
                 kick_and_rush_2()
                 labelStrategie.config(text="strategie2") 
                 defensiv_strategie_q()
              else:
                 labelStrategie.config(text="strategie3") 
                 kick_and_rush()
                 labelStrategie.config(text="strategie4") 
                 defensiv_strategie_q()
          elif zustand[2] > spieler-1:
              labelZahl.config(text="elif5")   
              labelStrategie.config(text="strategie1")  
              if st == 1 or st==2:
                 defensivstrategie_pressing()
                 offensiv_strategie_q()
              else:
                 defensivstrategie_keinpressing()
                 offensiv_strategie_q()
     
          if zustand[2] >0:
              labelZahl.config(text="elif6")   
              if zustand[2] < spieler:
                 (x,y,z,w) = canvasHintergrund.coords(p["p%i" %zustand[2]])
              else:
                 (x,y,z,w) = canvasHintergrund.coords(q["q%i" %(zustand[2]-spieler)])
              labelZahl.config(text="Ballpos ändern")
              canvasHintergrund.coords(ball, (x+5, y+5,z-5,w-5))                                        
          else:        
              bi = zustand[3]
              hi = zustand[4]
              
              if b_alt > bi or bi > b_alt or h_alt > hi or h_alt < hi:
                    if bi == -1:
                        b = verschiebung
                    elif bi == eint_horizontal:
                        b = breite+ verschiebung
                    else:
                        b = (2*bi+1)*int(breite/eint_horizontal/2)+10+verschiebung
                    if hi == -1:
                       h = verschiebung
                    elif hi == eint_vertikal:
                       h = hoehe + verschiebung
                    else:
                       h = (2*hi+1)*int(hoehe/eint_vertikal/2)+10+verschiebung
                    canvasHintergrund.coords(ball, (b+5, h+5,b-5,h-5))
                    
          labelZahl.config(text="Ballkontakt %i" %zustand[0])         
          labelZustand.config(text="Zustand: %i %i %i %i %i %i" %(zustand[0],zustand[1],zustand[2],zustand[3],zustand[4],zustand[5])) 
          tkFenster.after(1000,buttonZurueckClick_2)

def defensiv_strategie_q():
     global abwehrstrategieqi
     global abwehrstrategieqj
     global positionenx
     global positioneny
     global spieler
     global bereit
     
     for i in range(1,spieler):
          if bereit[spieler+i] < 1:
             if abwehrstrategieqj[i] != positioneny[i+spieler] or abwehrstrategieqi[i]!=positionenx[i+spieler]:
                if abwehrstrategieqi[i] > positionenx[i+spieler]:
                    b = positionenx[i+spieler]+1
                elif abwehrstrategieqi[i] < positionenx[i+spieler]:
                    b = positionenx[i+spieler]-1
                else: 
                    b = positionenx[i+spieler]   
                if abwehrstrategieqj[i] > positioneny[i+spieler]:
                    h =  positioneny[i+spieler]+1
                elif abwehrstrategieqj[i] < positioneny[i+spieler]:
                    h =  positioneny[i+spieler]-1
                else:
                    h =  positioneny[i+spieler]   
                laufen(i+spieler,h,b)
                positioneny[i+spieler] = h 
                positionenx[i+spieler] = b
                bereit[i+spieler] = 2

def offensiv_strategie_q():
     global bereit
     global angriffsstrategieqi
     global angriffsrategieqj
     global positionenx
     global positioneny
     global spieler
     global zustand
     global eint_horizontal
     global eint_vertikal
     global anzahlschusstechniken
     
     if zustand[3] > 0: 
         k = randint(1,spieler-1)
         h = positioneny[k+spieler]
         b = positionenx[k+spieler]
         
         while positionenx[k] < zustand[3] or k = zustand[2]:
            k = randint(1,spieler-1)
            h = positioneny[k+spieler]
            b = positionenx[k+spieler]
         
         technik = randint(0,anzahlschusstechniken-1)
         schuss(zustand[3],zustand[4],technik,zustand[2],b,h)
         m1 = zustand[3] - b
         m2 = zustand[4] - h
         labelZahl.config(text="offq1") 
         if technik == 1 or technik == 3:
            m3 = 1
         else:
            m3 = 2
         labelZahl.config(text="offq3") 
         if abs(m1) > abs(m2):
            bereit[2*spieler] = abs(m1)*m3
            labelZahl.config(text="offq4") 
         else:
            bereit[2*spieler] = abs(m2)*m3
            labelZahl.config(text="offq5") 
     else:
         labelZahl.config(text="torschuss") 
         technik = randint(0,anzahlschusstechniken-2) 
         schuss(zustand[3],zustand[4],technik,zustand[2],-1,int(eint_vertikal/2)-1)
         bereit[2*spieler] = 1
     
     for i in range(1,spieler):
          if bereit[spieler+i] < 1:
               labelZahl.config(text="offq6") 
               if angriffsstrategieqj[i] != positioneny[i+spieler] or angriffsstrategieqi[i]!=positionenx[i+spieler]:
                  labelZahl.config(text="offq66") 
                  if angriffsstrategieqi[i] > positionenx[i+spieler]:
                      b = positionenx[i+spieler]+1
                  elif angriffsstrategieqi[i] < positionenx[i+spieler]:
                      b = positionenx[i+spieler]-1
                  else: 
                      b = positionenx[i+spieler]   
                  if angriffsstrategieqj[i] > positioneny[i+spieler]:
                      h =  positioneny[i+spieler]+1
                  elif angriffsstrategieqj[i] < positioneny[i+spieler]:
                      h =  positioneny[i+spieler]-1
                  else:
                      h =  positioneny[i+spieler]   
                  labelZahl.config(text="offq67") 
                  laufen(i+spieler,h,b)
                  labelZahl.config(text="offq7") 
                  positioneny[i+spieler] = h 
                  positionenx[i+spieler] = b
                  bereit[i+spieler] = 2
                  labelZahl.config(text="offq8") 

     
     return 

     
def abstoss_p():
     global eint_horizontal
     global eint_vertikal
     global bereit
     global spieler
     global positionenx
     global positioneny
    
     for i in range(1,spieler):
          b = randint((eint_horizontal/2)-1, eint_horizontal-1)
          h = randint(0,eint_vertikal-1)
         
          b_2 = positionenx[i]
          h_2 = positioneny[i]
        
          if b_2 > b or b > b_2 or h_2 > h or h_2 < h:
               laufen(i,h,b)
               positionenx[i] = b
               positioneny[i] = h
               bereit[i] = 1   #bei Anstoß ist genugend zeit zur neupositonierung deswegen wird hier die kleinstmögliche Anzahl gewählt
         
     for i in range(spieler+1,2*spieler):
          b = randint((eint_horizontal/2)-1, eint_horizontal-1)
          h = randint(0,eint_vertikal-1)
         
          b_2 = positionenx[i]
          h_2 = positioneny[i]
        
          if b_2 > b or b > b_2 or h_2 > h or h_2 < h:
               laufen(i,h,b)
               positionenx[i] = b
               positioneny[i] = h
               bereit[i] = 1
         
       
     schuss(0,int(eint_vertikal/2)-1,2,0,int(eint_horizontal/2)-1,int(eint_vertikal/2-1))
     bereit[2*spieler] = 1
     return

def abstoss_Q():
    labelZahl.config(text="abstossq00") 
    global eint_horizontal
    global eint_vertikal
    global bereit
    global spieler
    global positionenx
    global positioneny
    labelZahl.config(text="abstossq0")
    schuss(eint_horizontal-1,int(eint_vertikal/2)-1,2,11,int(eint_horizontal/2)-1,int(eint_vertikal/2-1))
    bereit[2*spieler] = 1
    labelZahl.config(text="abstossq1")
    for i in range(1,spieler):
          b = randint(0, int(eint_horizontal/2)-1)
          h = randint(0,eint_vertikal-1)
         
          b_2 = positionenx[i]
          h_2 = positioneny[i]
        
          if b_2 > b or b > b_2 or h_2 > h or h_2 < h:
               laufen(i,h,b)
               positionenx[i] = b
               positioneny[i] = h
               bereit[i] = 1
    labelZahl.config(text="abstossq2")     
    for i in range(spieler+1,2*spieler):
          b = randint(0,int(eint_horizontal/2)-1)
          h = randint(0,eint_vertikal-1)
         
          b_2 = positionenx[i]
          h_2 = positioneny[i]
        
          if b_2 > b or b > b_2 or h_2 > h or h_2 < h:
               laufen(i,h,b)
               positionenx[i] = b
               positioneny[i] = h
               bereit[i] = 1
          
    labelZahl.config(text="abstossq3")    
    return

def laufen_alle():
    global spieler
    global eint_horizontal
    global eint_vertikal
    global positionenx
    global positioneny
    global zustand
    global bereit
    
    labelZahl.config(text="laufen_alle1")  
    
    for i in range(1,spieler):
       labelZahl.config(text="laufen_alle2") 
       
       b = positionenx[i]
       h = positioneny[i]
       h_1=0
       b_1=0
       
       if zustand[3] < b:
          b_1 = b -1
       elif: zustand[3] == b:
          b_1 = b
       else:
          b_1 = b+1
          
       if zustand[4] < h:
          h_1 = h -1
       elif: zustand[4] == h:
          h_1 = h
       else:
          h_1 = h+1 
          
       
       if b_1 > b or b > b_1 or h_1 > h or h_1 < h:
          positionenx[i] = b_1
          positioneny[i] = h_1
          laufen(i,h_1,b_1)
         
          bereit[i] = 2
          
    for i in range(spieler+1,2*spieler):
       labelZahl.config(text="laufen_alle2 %i" %i) 
       
       b = positionenx[i]
       h = positioneny[i]
       
       if zustand[3] < b:
          b_1 = b -1
       elif: zustand[3] == b:
          b_1 = b
       else:
          b_1 = b+1
          
       if zustand[4] < h:
          h_1 = h -1
       elif: zustand[4] == h:
          h_1 = h
       else:
          h_1 = h+1 
          
       
       if b_1 > b or b > b_1 or h_1 > h or h_1 < h:
          positionenx[i] = b_1
          positioneny[i] = h_1
          laufen(i,h_1,b_1)
         
          bereit[i] = 2
          
    zähler = zustand[0]
    zustand[0] = zähler+1
    return
   

        
        
def Einwerfen(s,h,b,f,g):
    global zustand
    global eint_horizontal
    global eint_vertikal
    
    x = random()
    zähler = zustand[0]
    if x <=  E["Erfolg%i %i %i %i %i" %(s,h,b,g,f)]:
         zustand = [zähler+1, sp,-1,b,h,-2]
    elif x <=  E["fehler%i %i %i %i %i" %(s,h,b,g,f)]+E["Erfolg%i %i %i %i %i" %(s,h,b,g,f)]:
         zustand = [zähler+1,sp,-1,g,f,-2]
    else:
         x1=randint(-1,1)
         y=randint(-1,1)
         while b+x1>=eint_horizontal or b+x1<0 or h+y>=eint_vertikal or h+y<0 or (x1==0 and y==0) :
              x1=randint(-1,1)
              y1=randint(-1,1)
         zustand=[zähler+1,sp,-1,b+x1,h+y,-2]
     
    
    return 0   
                 

def spielerinfeld(b,h,l1,l2):   
    global spieler
    global positionenx
    global positioneny
   
    stand = 0
    for i in range(0,2*spieler):
         
      if positionenx[i]==b and positioneny[i]==h:
         if i < spieler: 
               l1.append(i)
         else:
               l2.append(i)
         stand=stand+1
        
         
    return stand

def schuss(b,h,technik,sp,b_1,h_1):
    global zustand
    global anzahlschusstechniken
    global S
    global eint_horizontal
    global eint_vertikal
    global spieler 
    
    if -1 < b < eint_horizontal:
      Lp = list()
      Lq = list()
      spielerinfeld(b,h,Lp,Lq)
      j=len(Lq)
      del Lp[:]
      del Lq[:]
      del Lp
      del Lq
    else:
      j=0

    x=random()
   
    zähler = zustand[0]
   
    if technik <anzahlschusstechniken-1:
        if x <= S["Erfolg%i %i %i %i %i" %(sp,technik,j,h_1,b_1) ]:
              zustand = [zähler+1, sp,-1,b_1,h_1,technik]
        elif x<= S["Erfolg%i %i %i %i %i" %(sp,technik,j,h_1,b_1) ]+S["Ecke%i %i %i %i %i"%(sp,technik,j,h_1,b_1)]:
              labelZahl.config(text="schussecke")
              if h_1< eint_vertikal/2 and sp < spieler:               
                  zustand = [zähler+1,sp,-1, -1,-1,technik]
              elif h_1< eint_vertikal/2 and sp > spieler-1:
                  zustand = [zähler+1,sp,-1, eint_horizontal,-1,technik]
              elif sp > spieler:                 
                  zustand = [zähler+1,sp,-1, eint_horizontal,eint_vertikal,technik]
              else:
                  zustand = [zähler+1,sp,-1, -1,eint_vertikal,technik]
        elif x <= S["Erfolg%i %i %i %i %i" %(sp,technik,j,h_1,b_1) ]+S["Ecke%i %i %i %i %i" %(sp,technik,j,h_1,b_1)]+  S["Abstoss%i %i %i %i %i" %(sp,technik,j,h_1,b_1)]:
               if sp < spieler:
                   zustand = [zähler+1,sp,11, eint_horizontal-1,int(eint_vertikal/2)-1,technik]
               else:
                   zustand = [zähler+1,sp,0,0,int(eint_vertikal/2)-1,technik]
        elif x <=S["Erfolg%i %i %i %i %i" %(sp,technik,j,h_1,b_1) ]+S["Ecke%i %i %i %i %i" %(sp,technik,j,h_1,b_1)]+  S["Abstoss%i %i %i %i %i"%(sp,technik,j,h_1,b_1)]+S["Einwurf%i %i %i %i %i"%(sp,technik,j,h_1,b_1)]:
               if h_1< eint_vertikal/2:
                  zustand = [zähler+1,sp,-1,-1,h_1,technik]
               else:
                  zustand = [zähler+1,sp,-1, eint_horizontal,h_1,technik]
        else:
               x=randint(-1,1)
               y=randint(-1,1)
               while b_1+x>=eint_horizontal or b_1+x<0 or h_1+y>=eint_vertikal or h_1+y<0:
                    x=randint(-1,1)
                    y=randint(-1,1)
                    
               zustand=[zähler+1,sp,-1,(b_1+x),(h_1+y),technik]
               del b_1
               del h_1
    else:
        if x <= S["Erfolg%i %i %i %i %i" %(sp,technik,j,h_1,b_1) ]:
              zustand = [zähler+1, sp,sp,b_1,h_1,technik]
        else:
              zustand = [zähler+1,sp,-1,b_1,h_1,technik]
    return 

def laufen(sp,h,b):
    global spieler
    global breite
    global hoehe
    global eint_horizontal
    global eint_vertikal
    global verschiebung
    global positionenx
    global positioneny
    
    positionenx[sp]=b
    positioneny[sp]=h   

   
    bi = randint(10+b*int(breite/eint_horizontal)+verschiebung,-10+(b+1)*int(breite/eint_horizontal)+verschiebung)
    hi = randint(10+h*int(hoehe/eint_vertikal)+verschiebung,-10+(h+1)*int(hoehe/eint_vertikal)+verschiebung)
   
    if sp < spieler:          
          canvasHintergrund.coords(p["p%i"%sp], (bi-10, hi-10,bi+10,hi+10))
          return
    else:
          canvasHintergrund.coords(q["q%i"%(sp-spieler)], (bi-10, hi-10,bi+10,hi+10))
          return 

  
        
def Abwehren(s,t,i,j,f,b):
    global zustand
    global T
    global eint_vertikal
    global eint_horizontal
    global positionenx
    global positioneny
    
    x=random()
    labelZahl.config(text="abwehr1 %i %i %i %i %i %i" %(s,t,i,j,f,b))    
    zähler = zustand[0]
    if x <=  T["Erfolg%i %i %i %i %i %i" %(s,t,i,j,f,b) ]:
         labelZahl.config(text="abwehr12")  
         zustand = [zähler+1,s,s,b,f,t]
    elif x <=  T["Ecke%i %i %i %i %i %i" %(s,t,i,j,f,b)]  +  T["Erfolg%i %i %i %i %i %i" %(s,t,i,j,f,b) ]: 
         labelZahl.config(text="abwehr13")  
         m=randint(1,2)
         if m==1 and s==0:
             labelZahl.config(text="abwehr13a") 
             zustand = [zähler+1,s,-1,-1,-1,t]
         elif m==1 and s==spieler:
             labelZahl.config(text="abwehr13b") 
             zustand = [zähler+1,s,-1,-1,eint_vertikal,t]
         elif m==2 and s==0:
             labelZahl.config(text="abwehr13c") 
             zustand = [zähler+1,s,-1,eint_horizontal,-1,t]
         else:
             labelZahl.config(text="abwehr13d") 
             zustand =[zähler+1,s,-1,eint_horizontal,eint_vertikal,t]
         labelZahl.config(text="abwehr14")      
    elif x <=  T["Abstoss%i %i %i %i %i %i" %(s,t,i,j,f,b)] + T["Ecke%i %i %i %i %i %i" %(s,t,i,j,f,b)]  +  T["Erfolg%i %i %i %i %i %i" %(s,t,i,j,f,b) ] :     
         if s==0:
                zustand = [zähler+1,s,s,0,eint_vertikal/2-1,t]
         else:
                zustand = [zähler+1,s,s,eint_horizontal-1,eint_vertikal/2-1,t]
         labelZahl.config(text="abwehr15")         
    elif x<=  T["Feld %i %i %i %i %i %i" %(s,t,i,j,f,b)]  + T["Abstoss%i %i %i %i %i %i" %(s,t,i,j,f,b)] + T["Ecke%i %i %i %i %i %i" %(s,t,i,j,f,b)]  +  T["Erfolg%i %i %i %i %i %i" %(s,t,i,j,f,b) ] :     
         labelZahl.config(text="abwehr16")  
         zustand = [zähler+1,s,-1,positionenx[s],positioneny[s],t]
    elif x<=T["Tor %i %i %i %i %i %i" %(s,t,i,j,f,b)]+T["Feld %i %i %i %i %i %i" %(s,t,i,j,f,b)]  + T["Abstoss%i %i %i %i %i %i" %(s,t,i,j,f,b)] + T["Ecke%i %i %i %i %i %i" %(s,t,i,j,f,b)]  +  T["Erfolg%i %i %i %i %i %i" %(s,t,i,j,f,b) ] :     
         canvasHintergrund.coords(ball, (breite/2-5+verschiebung, hoehe/2-5+verschiebung, breite/2+5+verschiebung, hoehe/2+5+verschiebung))
         zustand = [zähler+1,s,-1,int(eint_horizontal/2)-1,int(eint_vertikal/2)-1,-2]
         stand = int(labelSpielstand.cget('text'))
         labelZahl.config(text="spielstand ändern")
         if s==0:
                stand=stand-1
         else:
                stand=stand+1
         labelSpielstand.config(text="%i"%stand)
         anfangsformation()
    else:
         b1=positionenx[s]
         h1=positioneny[s]
         x1=randint(-1,1)
         y1=randint(-1,1)
         while b1+x1>=eint_horizontal or b1+x1<0 or h1+y1>=eint_vertikal or h1+y1<0:
              x1=randint(-1,1)
              y1=randint(-1,1)
         zustand=[zähler+1,s,-1,b1+x1,h1+y1,t]
         labelZahl.config(text="abwehr17")  
    return 0
    
def Ballannahme(b,h,l1,l2,y):
   global spieler 
   global zustand
   
   x = randint(0,y-1)
   labelZahl.config(text="ballannanhme2b")
    
   if x < len(l1):
      labelZahl.config(text="ballannanhme2c")
      sp = l1[x]
      labelZahl.config(text="ballannanhme2d")
   else:
      labelZahl.config(text="ballannanhme2ca")
      sp = l2[x-len(l1)]
      labelZahl.config(text="ballannanhme2da")
   
  
   if sp < spieler:
      labelZahl.config(text="ballannanhme3 %i" %sp)
      if len(l1) < y:
          a = len(l2)
      else:
          a=0
      labelZahl.config(text="ballannanhme32")
      Ballannahme_sp(a,sp,zustand[5],h,b,zustand[1])
   else:
      if len(l2) < y:
          a = len(l1)
      else:
          a=0
      labelZahl.config(text="ballannanhme31")
      Ballannahme_sp(a,sp,zustand[5],h,b,zustand[1])
   labelZustand.config(text="Zustand: %i %i %i %i %i %i" %(zustand[0],zustand[1],zustand[2],zustand[3],zustand[4],zustand[5]))
   labelZahl.config(text="ballannanhme4")
  
   return 0
   
def Ballannahme_sp(zahl,sp,technik,h,b,spieler_alt):
    labelZahl.config(text="ballannanhmesp1")
    global zustand
    global spieler
    global B
    global eint_horizontal
    global eint_vertikal
    labelZahl.config(text="ballannanhmes2")
    x = random()
    zähler = zustand[0]
    labelZahl.config(text="ballannanhmes3 %i %i %i %i %i" %(zahl,sp,technik,h,b))
    if x <=  B["Erfolg%i %i %i %i %i" %(sp,technik,zahl,h,b) ]:
         labelZahl.config(text="ballannanhmes4") 
         zustand = [zähler+1, spieler_alt,sp,b,h,technik]
    elif x<= B["Erfolg%i %i %i %i %i" %(sp,technik,zahl,h,b) ]+B["Feld%i %i %i %i %i" %(sp,technik,zahl,h,b) ]:
         if spieler_alt == sp:
            zustand[0] = zähler+1
            labelZahl.config(text="ballannanhme3a%i" %sp)
         else: 
            zustand = [zähler+1, sp,-1,b,h,technik]
            labelZahl.config(text="ballannanhme3b%i" %sp)
    elif x <=   B["Erfolg%i %i %i %i %i" %(sp,technik,zahl,h,b) ]+B["Feld%i %i %i %i %i" %(sp,technik,zahl,h,b) ]+B["Ecke%i %i %i %i %i" %(sp,technik,zahl,h,b) ]:
         labelZahl.config(text="ballannanhmes5")
         if h< int(eint_vertikal/2) and sp < spieler:
             labelZahl.config(text="ballannanhmesa %i" %sp)
             zustand = [zähler+1,sp,-1, -1,-1,-1]
         elif h< int(eint_vertikal/2) and sp > spieler-1:
             labelZahl.config(text="ballannanhmesb %i" %sp)
             zustand = [zähler+1,sp,-1,eint_horizontal,-1,-1]
         elif sp < spieler and h > int(eint_vertikal/2)-1:
             labelZahl.config(text="ballannanhmesc%i" %sp)
             zustand = [zähler+1,sp,-1,-1,eint_vertikal,-1]
         else:
             labelZahl.config(text="ballannanhmesd %i" %sp)
             zustand = [zähler+1,sp,-1,eint_horizontal,eint_vertikal,-1]   
    elif x <= B["Erfolg%i %i %i %i %i" %(sp,technik,zahl,h,b) ]+B["Feld%i %i %i %i %i" %(sp,technik,zahl,h,b) ]+B["Ecke%i %i %i %i %i" %(sp,technik,zahl,h,b) ]+ B["Abstoss%i %i %i %i %i"%(sp,technik,zahl,h,b) ]:
         if sp < spieler:
             zustand = [zähler+1,sp,11, eint_horizontal,int(eint_vertikal/2)-1,technik]
             labelZahl.config(text="ballannanhmes4a %i" %sp)
         else:
             zustand = [zähler+1,sp,0, -1,int(eint_vertikal/2)-1,technik]
             labelZahl.config(text="ballannanhmes4b %i" %sp)
    elif x <=  B["Erfolg%i %i %i %i %i" %(sp,technik,zahl,h,b) ]+B["Feld%i %i %i %i %i" %(sp,technik,zahl,h,b) ]+B["Ecke%i %i %i %i %i" %(sp,technik,zahl,h,b) ]+ B["Abstoss%i %i %i %i %i"%(sp,technik,zahl,h,b) ]+B["Einwurf%i %i %i %i %i"%(sp,technik,zahl,h,b) ]:
         if h < eint_vertikal/2 and sp < spieler:
            zustand = [zähler+1,sp,-1, -1,h,technik]
            labelZahl.config(text="ballannanhmes4c %i" %sp)
         else:
            zustand = [zähler+1,sp,-1, eint_horizontal,h,technik]
            labelZahl.config(text="ballannanhmes4d %i" %sp)
    else:
         labelZahl.config(text="ballannanhmes57")
         x=randint(-1,1)
         y=randint(-1,1)
         while b+x>=eint_horizontal or b+x<0 or h+y>=eint_vertikal or h+y<0 :
              x=randint(-1,1)
              y=randint(-1,1)
         zustand=[zähler+1,sp,-1,b+x,h+y,technik] 
    return
 
def defensivstrategie_keinpressing():
     labelZahl.config(text="keinpressing0")
     global eint_vertikal
     global eint_horizontal
     global zustand
     labelZahl.config(text="keinpressing1")
     
     if zustand[3] < int(eint_horizontal/2):     
          labelZahl.config(text="keinpressing2")       
          Lg = list()
          labelZahl.config(text="keinpressing21") 
          spielerhinterball(Lg)
          stand = 0
          labelZahl.config(text="keinpressing22") 
          if len(Lg) > 0:
               labelZahl.config(text="keinpressing222") 
               while stand < len(Lg):
                 if Lg[stand] > 0:
                    i = randint(0,eint_vertikal-1)
                    y = Lg[stand]
                    m1 = zustand[3] - positionenx[y]
                    m2 = i - positioneny[y]
         
                    if abs(m1) > abs(m2):
                      bereit[y] = 2*abs(m1)
                    else:
                      bereit[y] = 2*abs(m2)
                    
                    laufen(y,i,zustand[3])
                    labelZahl.config(text="keinpressing23") 
                    positionenx[y] = zustand[3]
                    positioneny[y] = i
                    stand=stand+1
                   
                 else:
                    stand=stand+1      
                         
                             
          del Lg[:]
          del Lg
          
             
     else:
          for i in range(1,spieler):
               labelZahl.config(text="keinpressing24") 
               b_2 = positionenx[i]
               h_2 = positioneny[i]
               h_1 = randint(-1,1) + h_2
               b_1 = randint(-1,1) + b_2
               while b_1 <0 or b_1 > eint_horizontal-1 or h_1<0 or h_1>eint_vertikal-1:
                  h_1 = randint(-1,1) + h_2
                  b_1 = randint(-1,1) + b_2
              
              
               if b_2 > b_1 or b_1 > b_2 or h_2 > h_1 or h_2 < h_1:
                    laufen(i,h_1,b_1)
                    positionenx[i] = b_1
                    positioneny[i] = h_1
                    m1 = b_1 - b_2
                    m2 = h_1 - h_2
                    if abs(m1) > abs(m2):
                      bereit[i] = 2*abs(m1)
                    else:
                      bereit[i] = 2*abs(m2)
                    labelZahl.config(text="keinpressing25")   
          
     return
   


def defensivstrategie_pressing():
     labelZahl.config(text="pressing0")
     global eint_vertikal
     global eint_horizontal
     global spieler
     global anzahlschusstechniken
     global zustand
     
     if zustand[3]<eint_horizontal/2:
          labelZahl.config(text="pressing1")
          Belegung_p = list()
          Belegung_q = list()
          labelZahl.config(text="pressing2")
          for i in range(0,eint_vertikal):
              for j in range(0,eint_horizontal):
                 Belegung_p.append(spielerinfeld_anzahl(i,j,0))
                 Belegung_q.append(spielerinfeld_anzahl(i,j,1))
          labelZahl.config(text="pressing3")       
          lgi = list()
          lgj = list()
          Lf = list()
          labelZahl.config(text="pressing4")
          for i in range(0,eint_vertikal):
              for j in range(0,int(eint_horizontal/2)):
                   c=Belegung_p[(i)*eint_horizontal+(j)]-Belegung_q[(i)*eint_horizontal+(j)]
                   if c < 0:
                      for x in range(0,-c):
                         lgi.append(i)
                         lgj.append(j)
                         
          labelZahl.config(text="pressing5")
          spielerfrei(Lf,Belegung_p,Belegung_q)
          labelZahl.config(text="pressing6")
          stand = len(Lf)
          anzahl = len(lgi)
          
          d=0
          labelZahl.config(text="pressing6l")
          if stand > anzahl:
               d=anzahl
          else:
               d=stand
          labelZahl.config(text="pressing66 %i" %d)
          if d >0:
               labelZahl.config(text="pressing667")
               for i in range(0,d):
                   if bereit[Lf[i]] <1:
                         labelZahl.config(text="pressing6a") 
                         m1 = positionenx[Lf[i]] - lgi[i]
                         m2 = positionenx[Lf[i]] - lgj[i]
                         labelZahl.config(text="pressing6b") 
                         if abs(m1) > abs(m2):
                            bereit[Lf[i]] = 2*abs(m1)
                         else:
                            bereit[Lf[i]] = 2*abs(m2)  
                         laufen(Lf[i],lgj[i],lgi[i])
                         labelZahl.config(text="pressing6c")
                         positionenx[Lf[i]] = lgi[i]
                         positioneny[Lf[i]] = lgj[i]
                         labelZahl.config(text="pressing647")
          
          else:
               for i in range(1,spieler):
                    if bereit[i] <1:
                         
                         b = positionenx[i]
                         h = positioneny[i]
                         x = randint(-1,0)
                         y = randint(-1,1)
                         
                         while b+x <0 or b+x > eint_horizontal-1 or h+y<0 or h+y>eint_vertikal-1:
                              x = randint(-1,0)
                              y = randint(-1,1) 
              
              
                         if x!=0 or y!=0:
                             laufen(i,h+y,b+x)
                             bereit[i] = 2
               
        
          return 0
     
 
def kick_and_rush():
     labelZahl.config(text="kickandrush0")
     global eint_horizontal
     global zustand
     global spieler
     global breite
     global hoehe
     global eint_vertikal
     global positionenx
     global positioneny
     global anzahlschusstechniken
     global bereit
     
     labelZahl.config(text="kickandrush1")
     
     if eint_horizontal-2>zustand[3] >= eint_horizontal/2-1:
         labelZahl.config(text="kickandrush2a")
         l = list()
         labelZahl.config(text="kickandrush2aa") 
         maxhohe_p(l,zustand[2])
         if len(l) > 0:
               i = l[0]
               j = l[1]
               technik = randint(2,3)
               labelZahl.config(text="kickandrush2b")
               m1 = zustand[3] - i
               m2 = zustand[4] - j
               
               if technik == 2:
                  m3 = 2
               else:
                  m3 = 1
               
               if abs(m1) > abs(m2):
                    bereit[2*spieler] = abs(m1)*m3
               else:
                    bereit[2*spieler] = abs(m2)*m3
               schuss(zustand[3],zustand[4],technik,zustand[2],i,j)
              
               labelZahl.config(text="kickandrush3")
         else:
                positionenx[zustand[2]] = zustand[3]+1
                laufen(zustand[2],zustand[4],zustand[3]+1)
                bereit[zustand[2]] = 2
                bereit[2*spieler] = 2
                schuss(zustand[3],zustand[4],anzahlschusstechniken-1,zustand[2],zustand[3]+1,zustand[4])
                
              
        
     elif  zustand[3]==eint_horizontal-1 and (zustand[4]==eint_vertikal/2-1 or zustand[4]==eint_vertikal/2):
          technik = randint(0,1)*2+2  
          schuss(zustand[3],zustand[4],technik,zustand[2],eint_horizontal,zustand[4])
          labelZahl.config(text="kickandrush4")
    
     else:     
          b_1 = zustand[3]+randint(0,1)
          h_1 = zustand[4]+randint(-1,1)
          technik = randint(0,2)
          if b_1>eint_horizontal:
              b_1 = zustand[3]
          if h_1 < 0:
              h_1 = zustand[4]+randint(0,1)
          elif h_1 > eint_vertikal-1:
              h_1 = zustand[4]+randint(-1,0)
          labelZahl.config(text="kickandrush5")
          
          m1 = zustand[3]-b_1
          m2 = zustand[4]-h_1
          
          if technik == 1:
            m3 = 1
          else:
            m3 = 2
         
          if abs(m1) > abs(m2):
              bereit[2*spieler] = abs(m1)*m3
          else:
              bereit[2*spieler] = abs(m2)*m3
          schuss(zustand[3],zustand[4],technik,zustand[2],b_1,h_1)
    
     if eint_horizontal-1>zustand[3] >= eint_horizontal/2-1:
        c= 4
     else:
        c=1
     for i in range(c,spieler):
         b_2 = positionenx[i]
         h_2 = positioneny[i]
         
         h_1 = randint(0,2) + h_2
         b_1 = randint(0,2) + b_2
        
         while b_1 <0 or b_1 > (eint_horizontal-1) or h_1<0 or h_1>(eint_vertikal-1):
             h_1 = randint(-1,1) + h_2
             b_1 = randint(-1,1) + b_2
         labelZahl.config(text="kickandrush6")  
         laufen(i,h_1,b_1)
       
         m1 = b_2 -b_1
         m2 = h_2 -h_1
         if abs(m1) > abs(m2):
              bereit[i] = 2*abs(m1)
         else:
              bereit[i] = 2*abs(m2)
         positionenx[i] = b_1
         positioneny[i] = h_1
     
     return
         

def maxhohe_p(l,spieler_alt):
    labelZahl.config(text="maxhohe0")
    global spieler
    global eint_horizontal
    global eint_vertikal
    global breite
    global hoehe
    global verschiebung
    global positionenx
    global positioneny
    labelZahl.config(text="maxhohe1")
    posip = list()
    posjp = list()
    
    for i in range(1,spieler):
          posip.append(positionenx[i])
          posjp.append(positioneny[i])
    labelZahl.config(text="maxhohe2")
    posiq = list()
    posjq = list()
    
    for i in range(1,spieler):
      posiq.append(positionenx[i+spieler])
      posjq.append(positioneny[i+spieler])
       
    labelZahl.config(text="maxhohe3")
    kp= maxinliste(posip)
    kq= maxinliste(posiq)
    labelZahl.config(text="maxhohe4")
    if kp>kq:
         m = 0
         while m < spieler:
               if m < len(posip):
                    if posip[m] > kq-1:
                         c=posip.pop(m)
                         c=posjp.pop(m)
                    else:
                         m = m+1
    labelZahl.config(text="maxhohe55")
    if len(posip) > 0:
        labelZahl.config(text="maxhohe5")
        x=posip.count(kp)
        y=randint(1,x)
        labelZahl.config(text="maxhohe6")
        for i in range(1,y):
              m=posip.index(kp)
              del posip[m]
              del posjp[m]
        labelZahl.config(text="maxhohe7")
        m=posip.index(kp)
        l.append(posip[m])
        l.append(posjp[m])   
    
      
    del posip[:]
    del posjp[:]
    del posiq[:]
    del posjq[:]
    return

def maxinliste(l):
     c = -1
     for i in range(0,len(l)):
          if l[i] > c:
               c = l[i]
     
     return c          

def Einwurfp():
     labelZahl.config(text="einwurfp0")
     global zustand
     global spieler
     global eint_horizontal
     global eint_vertikal
     global bereit
     global positionenx
     global positioneny
     labelZahl.config(text="einwurfp1")
     x= randint(1,spieler-1)
     labelZahl.config(text="einwurfp2")
     a = randint(0,eint_horizontal-1)
     b = randint(0,eint_vertikal-1)
     positionenx[x] = zustand[3]
     positioneny[x] = zustand[4]
     
     labelZahl.config(text="einwurfp22")
     laufen(x,zustand[4],zustand[3])
     bereit[x] = 1
     labelZahl.config(text="einwurfp23")
     einwerfen(x,b,a,zustand[3],zustand[4])
     labelZahl.config(text="einwurfp24")
     
     labelZahl.config(text="einwurfp3")
     for i in range(1,spieler):
        if i>x or i<x:
            bi= randint(0,eint_horizontal-1)
            hi= randint(0,eint_vertikal-1)
            laufen(i,hi,bi)
            bereit[i] = 1
           
            positionenx[i] = bi
            positioneny[i] = hi
     return       

def einwerfen(s,h,b,g,f):
     global zustand
     global eint_horizontal
     global eint_vertikal
     x = random()
     zähler = zustand[0]
     labelZahl.config(text="einwurfen1 %i %i %i %i %i" %(s,h,b,g,f))
     if x <= E["Erfolg%i %i %i %i %i" %(s,h,b,g,f)]:
          labelZahl.config(text="einwurfen2")
          zustand = [zähler+1,s,-1,b,h,-2]
     elif x<= E["Erfolg%i %i %i %i %i" %(s,h,b,g,f)]+E["Einwurffehler%i %i %i %i %i" %(s,h,b,g,f)] :
          labelZahl.config(text="einwurfen")
          zustand =  [zähler+1,s,-1,f,g,-2]
     else:
          x1=randint(-1,1)
          y=randint(-1,1)
          while b_1+x1>=eint_horizontal or b_1+x1<0 or h_1+y>=eint_vertikal or h_1+y<0:
               x1=randint(-1,1)
               y=randint(-1,1)
          labelZahl.config(text="einwurfen4")          
          zustand=[zähler+1,sp,-1,(b_1+x1),(h_1+y),technik]
          labelZahl.config(text="einwurfen6")
     
     return 0           

def Eckep():
     labelZahl.config(text="eckep0")
     global spieler
     global eint_vertikal
     global eint_horizontal
     global zustand
     global positionenx
     global positioneny
     global bereit
    
     technik = 3
     x= randint(1,spieler-1)
     labelZahl.config(text="eckep01")
     positionenx[x] = zustand[3]
     positioneny[x] = zustand[4]
     laufen(x,zustand[4],zustand[3])
     bereit[x] = 1
     labelZahl.config(text="eckep02")
     schuss(zustand[3],zustand[4],technik,x,eint_horizontal-1,int(eint_vertikal/2)-1)
     
     labelZahl.config(text="eckep1")
     for i in range(1,2*spieler):
        if i!=x and i !=spieler:
            y=randint(0,1)
            z=randint(0,1)
            laufen(i,int(eint_vertikal/2)-y,eint_horizontal-1-z)
            positionenx[i] = eint_horizontal-1-z
            positioneny[i] = int(eint_vertikal/2)-y
            bereit[i] = 1
            
     return       

def Eckeq():
     labelZahl.config(text="eckeq0")
     global spieler
     global eint_vertikal
     global bereit
     global positionenx
     global positioneny
     
     technik = 3
     x= randint(spieler+1,2*spieler-1)
     labelZahl.config(text="eckeq01")
     
     laufen(x,zustand[4],zustand[3])
     positionenx[x] = zustand[3]
     positioneny[x] = zustand[4]
     l = randint(0,1)
     schuss(zustand[3],zustand[4],technik,x,0,int(eint_vertikal/2)-l)
     labelZahl.config(text="eckeq1")
     for i in range(1,2*spieler):
        if x!=i and i!=spieler:
            y=randint(0,1)
            z=randint(0,1)
            labelZahl.config(text="einwurfq1")
            laufen(i,int(eint_vertikal/2)-y,0+z)
            positioneny[i] = int(eint_vertikal/2)-y
            positionenx[i] = 0 +z
            bereit[i] = 1
     
     return  0     
    

def kick_and_rush_2():
     global eint_horizontal
     global zustand
     global spieler
     global breite
     global hoehe
     global eint_vertikal
     global bereit
     global positionenx
     global positioneny
     labelStrategie.config(text="tiki1") 
     
     if  zustand[3]==eint_horizontal-1:
         technik = randint(0,1)*2+2
         schuss(zustand[3],zustand[4],technik,zustand[2],eint_horizontal,zustand[4])
         bereit[2*spieler] = 1
         labelStrategie.config(text="tikischuss")
     elif zustand[3] == eint_horizontal-2 and (zustand[4] == int(eint_vertikal/2) or zustand[4] == eint_vertikal/2-1):
         technik = randint(0,1)*2+2
         schuss(zustand[3],zustand[4],technik,zustand[2],eint_horizontal,zustand[4])
         bereit[2*spieler] = 1
         labelStrategie.config(text="tikischuss")
     else:     
         b_1 = zustand[3]+randint(0,1)
         h_1 = zustand[4]+randint(-1,1)
         labelStrategie.config(text="tikischuss2") 
         if zustand[3]>2*eint_horizontal/3:
            technik = 1
            m3 = 1
         else: 
            technik = 0
            m3 = 2
         if b_1>eint_horizontal-1:
            b_1 = zustand[3]
         if h_1 < 0:
            h_1 = zustand[4]+1
         elif h_1 > eint_vertikal-1:
            h_1 = zustand[4]+-1
         m1 = b_1 -zustand[3]
         m2 = h_1 -zustand[4]
         if abs(m1) > abs(m2):
              bereit[2*spieler] = abs(m1)*m3
         else:
              bereit[2*spieler] = abs(m2)*m3   
         schuss(zustand[3],zustand[4],technik,zustand[2],b_1,h_1)
         labelStrategie.config(text="kikckischuss") 
   
        
     for i in range(1,spieler):
          if bereit[i] < 1:
               b_2 = positionenx[i]
               h_2 = positioneny[i]
               h_1 = randint(-1,1) + h_2
               b_1 = randint(-1,1) + b_2
               
               while b_1 <0 or b_1 > eint_horizontal-1 or h_1<0 or h_1>eint_vertikal-1:
                  h_1 = randint(-1,1) + h_2
                  b_1 = randint(-1,1) + b_2
               
               if b_2 > b_1 or b_1 > b_2 or h_2 > h_1 or h_2 < h_1:
                    m1 = b_2 -b_1
                    m2 = h_2 -h_1
                    if abs(m1) > abs(m2):
                       bereit[i] = abs(m1)
                    else:
                       bereit[i] = abs(m2)
                    laufen(i,h_1,b_1)
                    positionenx[i] = b_1
                    positioneny[i] = h_1
       
     
     for i in range(spieler+1,2*spieler):  
          if bereit[i] < 1:
               b_2 = positionenx[i]
               h_2 = positioneny[i]
               h_1 = randint(-1,1) + h_2
               b_1 = randint(-1,1) + b_2
               
               while b_1 <0 or b_1 > eint_horizontal-1 or h_1<0 or h_1>eint_vertikal-1:
                  h_1 = randint(-1,1) + h_2
                  b_1 = randint(-1,1) + b_2
               
               if b_2 > b_1 or b_1 > b_2 or h_2 > h_1 or h_2 < h_1:
                    laufen(i,h_1,b_1)
                    m1 = b_2 -b_1
                    m2 = h_2 -h_1
                    if abs(m1) > abs(m2):
                       bereit[i] = 2*abs(m1)
                    else:
                       bereit[i] = 2*abs(m2)
                    positionenx[i] = b_1
                    positioneny[i] = h_1
         
     
     labelZustand.config(text="Zustand: %i %i %i %i %i" %(zustand[0],zustand[1],zustand[2],zustand[3],zustand[4])) 
     labelZahl.config(text="Ende-tiki-taka")
     return 0
         
def Einwurfq():
     labelZahl.config(text="einwurfq0")
     global spieler
     global eint_vertikal
     global zustand
     labelZahl.config(text="einwurfq1")
     x= randint(spieler+1,2*spieler)
     if zustand[4]==eint_vertikal:
        labelZahl.config(text="einwurfq12")
        einwerfen(zustand[3],zustand[4],sp,zustand[3],zustand[4]-1)
        labelZahl.config(text="einwurfq122")
        bereit[2*spieler] = 1
        bereit[x] = 1
     else:
        labelZahl.config(text="einwurfq13")  
        einwerfen(zustand[3],zustand[4],sp,zustand[3],zustand[4]+1)
        bereit[2*spieler] = 1
        bereit[x] = 1
     labelZahl.config(text="einwurfq2")
     
     return
     
        
        
def spielerinfeld_anzahl(i,j,k):
   
    global spieler
    global positionenx
    global positioneny
    labelZahl.config(text="anzahl1")
    stand = 0
    labelZahl.config(text="anzahl2")
    
    if k == 0:
       Menge = range(0,spieler)
    else:
       Menge = range(spieler+1,2*spieler)
    
    for s in Menge:
        if positionenx[s] == i and positioneny[s] == j:
           stand= stand + 1
    labelZahl.config(text="anzahl3")
    
    del Menge
    
    return stand  

def spielerhinterball(Lg):
    
    global zustand
    global spieler
    global positionenx
    b = zustand[3]
 
    
    for i in range(0,spieler):
       if b < positionenx[i]:
           Lg.append(i)
     
  
    return


                  
def spielerfrei(Lf,Belegung_p,Belegung_q):
    labelZahl.config(text="frei0")
    global eint_vertikal
    global eint_horizontal
    global spieler
    global positionenx
    global positioneny
    labelZahl.config(text="frei1")
    
    for i in range(0,eint_vertikal):
         for j in range(eint_horizontal-1,-1):
                  c = Belegung_p[(i)*eint_horizontal+(j)]-Belegung_q[(i)*eint_horizontal+(j)]
                  labelZahl.config(text="frei3")
                  stand = 0
                  labelZahl.config(text="frei33")
                  if c >0:
                     for sp in range(1,spieler): 
                          labelZahl.config(text="frei43")
                          if stand < c:
                               labelZahl.config(text="frei344")
                               if positionenx[sp] == j and positioneny[sp] == i:
                                    labelZahl.config(text="frei3333")
                                    Lf.append(sp)
                                    labelZahl.config(text="frei4")
                                    stand=stand+1
    
    
    return               
 
def anfangsformation():
     global spieler
     global bereit
     global positionenx
     global positioneny
     global eint_horizontal
     global eint_vertikal
     
     labelZahl.config(text="Anfangsformation")
     
     for i in range(1,spieler):
          if i==1:
               bereit[i] = 1
               bereit[i+spieler] = 1
               positionenx[i] = 0
               positionenx[i+spieler] = eint_horizontal-1
               positioneny[i] = 0
               positioneny[i+spieler] = 0
          elif i==2:
               bereit[i] = 1
               bereit[i+spieler] = 1
               positionenx[i] = 0
               positionenx[i+spieler] = eint_horizontal-1
               positioneny[i] = 1
               positioneny[i+spieler] = 1
          elif i==3:
               bereit[i] = 1
               bereit[i+spieler] = 1
               positionenx[i] = 0
               positionenx[i+spieler] = eint_horizontal-1
               positioneny[i] = 2
               positioneny[i+spieler] = 2
          elif i==4:
               bereit[i] = 1
               bereit[i+spieler] = 1
               positionenx[i] = 0
               positionenx[i+spieler] = eint_horizontal-1
               positioneny[i] = 3
               positioneny[i+spieler] = 3
          elif i==5:
               bereit[i] = 1
               bereit[i+spieler] = 1
               positionenx[i] = 1
               positionenx[i+spieler] = eint_horizontal-2
               positioneny[i] = 0
               positioneny[i+spieler] = 0
          elif i==6:
               bereit[i] = 1
               bereit[i+spieler] = 1
               positionenx[i] = 1
               positionenx[i+spieler] = eint_horizontal-2
               positioneny[i] = 1
               positioneny[i+spieler] = 1
          elif i==7:
               bereit[i] = 1
               bereit[i+spieler] = 1
               positionenx[i] = 1
               positionenx[i+spieler] = eint_horizontal-2
               positioneny[i] = 2
               positioneny[i+spieler] = 2
          elif i==8:
               bereit[i] = 1
               bereit[i+spieler] = 1
               positionenx[i] = 1
               positionenx[i+spieler] = eint_horizontal-2
               positioneny[i] = 3
               positioneny[i+spieler] = 3
          elif i== 9:
               bereit[i] = 1
               bereit[i+spieler] = 1
               positionenx[i] = 2
               positionenx[i+spieler] = eint_horizontal-3
               positioneny[i] = 1
               positioneny[i+spieler] = 1
          else:
               bereit[i] = 1
               bereit[i+spieler] = 1
               positionenx[i] = 2
               positionenx[i+spieler] = eint_horizontal-3
               positioneny[i] = 2
               positioneny[i+spieler] = 2
     
     labelZahl.config(text="Anfangsformation2")
               
     for i in range(1,2*spieler):
          if i != spieler:
                bi = randint(10+positionenx[i]*int(breite/eint_horizontal)+verschiebung,-10+(positionenx[i]+1)*int(breite/eint_horizontal)+verschiebung)
                hi = randint(10+positioneny[i]*int(hoehe/eint_vertikal)+verschiebung,-10+(positioneny[i]+1)*int(hoehe/eint_vertikal)+verschiebung)
                labelZahl.config(text="Anfangsformation3")
                if i < spieler:          
                     canvasHintergrund.coords(p["p%i"%i], (bi-10, hi-10,bi+10,hi+10))
                else:
                     canvasHintergrund.coords(q["q%i"%(i-spieler)], (bi-10, hi-10,bi+10,hi+10))
                labelZahl.config(text="Anfangsformation4")     
     return

            
def Button1_Weiter_Click():
    global auswahl
    global zustand
    global strategie
    if auswahl == 0:
          labelStrategie.config(text="Tiki-Taka mit Pressing")
          zustand = [0,-1,-1, int(eint_horizontal/2)-1, int(eint_vertikal/2)-1,-1]
          auswahl = 1
          strategie = 1
          spiel(strategie)   

    
def Button2_Weiter_Click():
    global auswahl
    global zustand
    global strategie
    if auswahl == 0: 
          zustand = [0,-1,-1, eint_horizontal/2-1, eint_vertikal/2-1,-1]
          labelStrategie.config(text="Kick-and-Rush ohne Pressing") 
          auswahl = 1  
          strategie = 2
          spiel(strategie)
        
     

def Button3_Weiter_Click():
    global auswahl
    global zustand
    global strategie
    if auswahl == 0:
          zustand = [0,-1,-1, eint_horizontal/2-1, eint_vertikal/2-1,-1]
          labelStrategie.config(text="Tiki-Taka ohne Pressing") 
          auswahl = 1
          strategie=3
          spiel(strategie)
     
def Button4_Weiter_Click():
    global auswahl
    global zustand
    global strategie
    if auswahl ==0:
          zustand = [0,-1,-1, eint_horizontal/2-1, eint_vertikal/2-1,-1]
          labelStrategie.config(text="Kick-and-Rush ohne Pressing")
          auswahl = 1
          strategie=4
          spiel(strategie)     
    
def buttonZurueckClick():
    global zustand
    global strategie
    global auswahl
    labelZahl.config(text="neustart")
    anfangsformation()
    auswahl = 0
    canvasHintergrund.coords(ball, (int(breite/2)-10+verschiebung, int(hoehe/2)-10+verschiebung, int(breite/2)-5+verschiebung, int(hoehe/2)-5+verschiebung))

def buttonNullClick():
    labelZahl.config(text='Ballkontakte=1')
    
def buttonZurueckClick_2():
     global strategie
     spiel(strategie)

def Button_Close_Click():
    tkFenster.quit()
    tkFenster.destroy()  

# Erzeugung des Fensters
tkFenster = Tk()
tkFenster.title('Test')
tkFenster.geometry('900x551')

imageHintergrund = PhotoImage(file='Fussballfeld.gif')
# Canvas für den Hintergrund
canvasHintergrund = Canvas(master=tkFenster)
canvasHintergrund.place(x=0, y=0, width=900, height=500)
canvasHintergrund.create_image(25, 25, image=imageHintergrund, anchor='nw')

verschiebung = 25
eint_horizontal =6
eint_vertikal =4
spieler = 11
breite = 700
hoehe = 450
strategie = 0
for i in  range(0, eint_horizontal+1):
    canvasHintergrund.create_line(verschiebung  + i*breite/eint_horizontal,0,  verschiebung + i*breite/eint_horizontal,2*verschiebung + hoehe)

for i in  range(0, eint_vertikal+1):
   canvasHintergrund.create_line(0,verschiebung+i*hoehe/eint_vertikal, 2*verschiebung+ breite,verschiebung+i*hoehe/eint_vertikal)

p = {}
q = {}

positionenx=list()
positioneny=list()
bereit = list()

for i in range(0,2*spieler):
     positionenx.append(0)
     positioneny.append(0)
     bereit.append(0)

bereit.append(0)     

zustand = list()
abwehrstrategieqi = list()
abwehrstrategieqj = list()
angriffsstrategieqi = list()
angriffsstrategieqj = list()

positionenx[0] = 0
positioneny[0] = int(eint_vertikal/2)-1

positionenx[spieler] = eint_horizontal -1
positioneny[spieler] = int(eint_vertikal/2)-1
abwehrstrategieqi.append(eint_horizontal -1)
abwehrstrategieqj.append(int(eint_vertikal/2)-1)
angriffsstrategieqi.append(eint_horizontal -1)
angriffsstrategieqj.append(int(eint_vertikal/2)-1)
 
p["p%i" % 0]=canvasHintergrund.create_oval(verschiebung, hoehe/2-11+verschiebung,verschiebung+20, hoehe/2+9+verschiebung, fill='yellow')
q["q%i" % 0]=canvasHintergrund.create_oval(breite-20+verschiebung, hoehe/2-11+verschiebung, breite+verschiebung, hoehe/2+9+verschiebung, fill='green')

for i in range(1,spieler):
     if i==1:
          abwehrstrategieqj.append(0)
          abwehrstrategieqi.append(eint_horizontal-1)
          angriffsstrategieqi.append(2)
          angriffsstrategieqj.append(0)
          positionenx[i] = 0
          positionenx[i+spieler] = eint_horizontal-1
          positioneny[i] = 0
          positioneny[i+spieler] = 0
     elif i==2:
          abwehrstrategieqj.append(1)
          abwehrstrategieqi.append(eint_horizontal-1)
          angriffsstrategieqi.append(2)
          angriffsstrategieqj.append(1)
          positionenx[i] = 0
          positionenx[i+spieler] = eint_horizontal-1
          positioneny[i] = 1
          positioneny[i+spieler] = 1
     elif i==3:
          abwehrstrategieqj.append(2)
          abwehrstrategieqi.append(eint_horizontal-1)
          angriffsstrategieqi.append(2)
          angriffsstrategieqj.append(2)
          positionenx[i] = 0
          positionenx[i+spieler] = eint_horizontal-1
          positioneny[i] = 2
          positioneny[i+spieler] = 2
     elif i==4:
          abwehrstrategieqj.append(3)
          abwehrstrategieqi.append(eint_horizontal-1)
          angriffsstrategieqi.append(2)
          angriffsstrategieqj.append(3)
          positionenx[i] = 0
          positionenx[i+spieler] = eint_horizontal-1
          positioneny[i] = 3
          positioneny[i+spieler] = 3
     elif i==5:
          abwehrstrategieqj.append(0)
          abwehrstrategieqi.append(eint_horizontal-2)
          angriffsstrategieqi.append(1)
          angriffsstrategieqj.append(0)
          positionenx[i] = 1
          positionenx[i+spieler] = eint_horizontal-2
          positioneny[i] = 0
          positioneny[i+spieler] = 0
     elif i==6:
          abwehrstrategieqj.append(1)
          abwehrstrategieqi.append(eint_horizontal-2)
          angriffsstrategieqi.append(1)
          angriffsstrategieqj.append(1)
          positionenx[i] = 1
          positionenx[i+spieler] = eint_horizontal-2
          positioneny[i] = 1
          positioneny[i+spieler] = 1
     elif i==7:
          abwehrstrategieqj.append(2)
          abwehrstrategieqi.append(eint_horizontal-2)
          angriffsstrategieqi.append(1)
          angriffsstrategieqj.append(2)
          positionenx[i] = 1
          positionenx[i+spieler] = eint_horizontal-2
          positioneny[i] = 2
          positioneny[i+spieler] = 2
     elif i==8:
          abwehrstrategieqj.append(3)
          abwehrstrategieqi.append(eint_horizontal-2)
          angriffsstrategieqi.append(1)
          angriffsstrategieqj.append(3)
          positionenx[i] = 1
          positionenx[i+spieler] = eint_horizontal-2
          positioneny[i] = 3
          positioneny[i+spieler] = 3
     elif i== 9:
          abwehrstrategieqj.append(1)
          abwehrstrategieqi.append(eint_horizontal-3)
          angriffsstrategieqi.append(0)
          angriffsstrategieqj.append(1)
          positionenx[i] = 2
          positionenx[i+spieler] = eint_horizontal-3
          positioneny[i] = 1
          positioneny[i+spieler] = 1
     else:
          abwehrstrategieqj.append(2)
          abwehrstrategieqi.append(eint_horizontal-3)
          angriffsstrategieqi.append(0)
          angriffsstrategieqj.append(2)
          positionenx[i] = 2
          positionenx[i+spieler] = eint_horizontal-3
          positioneny[i] = 2
          positioneny[i+spieler] = 2

for i in range(1,spieler):
     bi= randint(10+positionenx[i]*int(breite/eint_horizontal) + verschiebung, (positionenx[i]+1)*int(breite/eint_horizontal) +10+verschiebung)
     hi= randint(10+verschiebung+positioneny[i]*int(hoehe/eint_vertikal),(positioneny[i]+1)*int(hoehe/eint_vertikal)+10+verschiebung)
     p["p%i" % i]=canvasHintergrund.create_oval(bi-10, hi-10, bi+10,hi+10, fill='red')

for i in range(1,spieler):
     bi= randint(10+positionenx[i+spieler]*int(breite/eint_horizontal) + verschiebung, (positionenx[i+spieler]+1)*int(breite/eint_horizontal) +10+verschiebung)
     hi= randint(10+verschiebung+positioneny[i+spieler]*int(hoehe/eint_vertikal),(positioneny[i+spieler]+1)*int(hoehe/eint_vertikal)+10+verschiebung)
     q["q%i" % i]=canvasHintergrund.create_oval(bi-10, hi-10, bi+10,hi+10, fill='blue')  

ball=canvasHintergrund.create_oval(int(breite/2)-10+verschiebung, int(hoehe/2)-10+verschiebung, int(breite/2)-5+verschiebung, int(hoehe/2)-5+verschiebung, fill='black')
  

#Schusstechniken = {"Flach/Normal", "Flach/hart", "hoch/normal", "hoch/hart","dribbling"}
#Gegenspieler = range(0,spieler)
anzahlschusstechniken=5
#Schusswahrscheinlichkeiten (spieler, technik, anzahl der gegenspieler, Feld, EckeQ, EinwurfQ, Nachbarfeld)
#Eventuell logik fall j größer Erfolgswahrscheinlichkeit kleiner

S = {}
for s in range(0,2*spieler):
    for i in  range(0,anzahlschusstechniken-1):
        for j in range(0,spieler+1):
            for b in range(-1,eint_horizontal+1):
                for h in range(-1,eint_vertikal+1):
                     m1=random()
                     S["Erfolg%i %i %i %i %i" %(s,i,j,h,b) ] = m1
                     m2 = 0# uniform(0,1-m1)
                     S["Ecke%i %i %i %i %i" %(s,i,j,h,b)] = m2
                     m3 = 0#uniform(0,1-m1-m2)
                     S["Abstoss%i %i %i %i %i" %(s,i,j,h,b)] = m3
                     m4 = 0#uniform(0,1-m1-m2-m3)
                     S["Einwurf%i %i %i %i %i" %(s,i,j,h,b)] = m4
                     S["Nachbarfeld%i %i %i %i %i" %(s,i,j,h,b)] = 1-m1-m2-m3-m4

i=anzahlschusstechniken-1 #(dribbling kann nur erfolgreich oder nicht erfolgreich sein)
for s in range(0,2*spieler):
        for j in range(0,spieler+1):
            for b in range(0,eint_horizontal+1):
                for h in range(0,eint_vertikal+1):
                     m1=random()
                     S["Erfolg%i %i %i %i %i" %(s,i,j,h,b) ] = m1
                     S["Misserfolg%i %i %i %i %i" %(s,i,j,h,b)] = 1-m1

#Ballannahme:
B={}
for s in range(0,2*spieler):
    for i in  range(0,anzahlschusstechniken): #bei dribbling keine Ballannahme möglich
        for j in range(0,spieler+1):
            for b in range(0,eint_horizontal+1):
                 for h in range(0,eint_vertikal+1):
                     m1=random()
                     B["Erfolg%i %i %i %i %i" %(s,i,j,h,b) ] = m1
                     m2 = uniform(0,1-m1)
                     B["Feld%i %i %i %i %i" %(s,i,j,h,b) ] = m2
                     m3 = 0#uniform(0,1-m1-m2)
                     B["Ecke%i %i %i %i %i" %(s,i,j,h,b)] = m3
                     m4 = 0#uniform(0,1-m1-m2-m3)
                     B["Abstoss%i %i %i %i %i" %(s,i,j,h,b)] = m4
                     m5 = 0#uniform(0,1-m1-m2-m3-m4)
                     B["Einwurf%i %i %i %i %i" %(s,i,j,h,b)] = m5
                     B["Nachbarfeld%i %i %i %i %i" %(s,i,j,h,b)] = 1-m1-m2-m3-m4-m5
i=-2 #Einwurf
for s in range(0,2*spieler):
        for j in range(0,spieler+1):
            for b in range(0,eint_horizontal+1):
                 for h in range(0,eint_vertikal+1):
                     m1=random()
                     B["Erfolg%i %i %i %i %i" %(s,i,j,h,b) ] = m1
                     m2 = uniform(0,1-m1)
                     B["Feld%i %i %i %i %i" %(s,i,j,h,b) ] = m2
                     m3 = 0#uniform(0,1-m1-m2)
                     B["Ecke%i %i %i %i %i" %(s,i,j,h,b)] = m3
                     m4 = 0#uniform(0,1-m1-m2-m3)
                     B["Abstoss%i %i %i %i %i" %(s,i,j,h,b)] = m4
                     m5 = 0#uniform(0,1-m1-m2-m3-m4)
                     B["Einwurf%i %i %i %i %i" %(s,i,j,h,b)] = m5
                     B["Nachbarfeld%i %i %i %i %i" %(s,i,j,h,b)] = 1-m1-m2-m3-m4-m5

#Einwurf
E={}
Einwurf = [-1, eint_vertikal]
for s in range(0,2*spieler):
    for f in Einwurf:
         for g in range(0,eint_horizontal+1):
             for b in range(0,eint_horizontal+1):
                 for h in range(0,eint_vertikal+1):
                     m1=random()
                     E["Erfolg%i %i %i %i %i" %(s,h,b,g,f)] = m1
                     m2 = uniform(0,min(1-m1,0.1))
                     E["Einwurffehler%i %i %i %i %i" %(s,h,b,g,f)] = m2
                     E["Misserfolg%i %i %i  %i %i " %(s,h,b,g,f)] = 1-m1-m2
                
#Torwart
T = {} 
torwarttech = 2 
Torwart = [0, spieler]
for s in Torwart:
    for t in range(0,torwarttech):
        for i in  range(0,anzahlschusstechniken):
            for j in range(0,2*spieler):
                 for b in range(-1,eint_horizontal+1):
                    for f in range(-1,eint_vertikal+1):
                         m1=random()
                         T["Erfolg%i %i %i %i %i %i" %(s,t,i,j,f,b) ] = m1
                         m2 = uniform(0,1-m1)
                         T["Ecke%i %i %i %i %i %i" %(s,t,i,j,f,b)] = m2
                         m3 = uniform(0,1-m1-m2)
                         T["Abstoss%i %i %i %i %i %i" %(s,t,i,j,f,b)] = m3
                         m4 = uniform(0,1-m1-m2-m3)
                         T["Feld %i %i %i %i %i %i" %(s,t,i,j,f,b)] = m4
                         m5 = uniform(0,1-m1-m2-m3-m4)
                         T["Tor %i %i %i %i %i %i" %(s,t,i,j,f,b)] = m5
                         T["Nachbarfeld%i %i %i %i %i %i" %(s,t,i,j,f,b)] = 1-m1-m2-m3-m4-m5
                         

auswahl = 0
                       
buttonWeiter1 = Button(master=tkFenster, text="Ticki-Taka mit Pressing", command=Button1_Weiter_Click)
buttonWeiter1.place(x=750, y=00, width=150, height=30)
buttonWeiter2 = Button(master=tkFenster, text="Kick-and-Rush mit Pressing", command=Button2_Weiter_Click)
buttonWeiter2.place(x=750, y=35, width=150, height=30)
buttonWeiter3 = Button(master=tkFenster, text="Tiki-Taka ohne Pressing", command=Button3_Weiter_Click)
buttonWeiter3.place(x=750, y=70, width=150, height=30)
buttonWeiter4 = Button(master=tkFenster, text="Kick-and-Rush ohne Pressing", command=Button4_Weiter_Click)
buttonWeiter4.place(x=750, y=105, width=150, height=30)
buttonZurueck = Button(master=tkFenster, text='zurück', bg='#FFCFC9', command=buttonZurueckClick)
buttonZurueck.place(x=750, y=145, width=50, height=30)


buttonClose = Button(master=tkFenster, text='Ende',
                     command=Button_Close_Click)
buttonClose.place(x=750, y=180, width=50, height=30)


labelSpielstand= Label(master=tkFenster,
                               text='0',
                               background="#FFCFC9")
labelSpielstand.place(x=750, y=240, width=100, height=50)

labelStrategie= Label(master=tkFenster,
                               text='noch keine Strategie ausgewählt',
                               background="#FFCFC9")
labelStrategie.place(x=750, y=300, width=150, height=50)


labelZahl = Label(master=tkFenster, text='Ballkontakte= 0', bg='gray')
labelZahl.place(x=750, y=500, width=150, height=30)

labelZustand = Label(master=tkFenster, text='Ballkontakte= 0', bg='gray')
labelZustand.place(x=750, y=400, width=150, height=30)
 
labelZustand_alt = Label(master=tkFenster, text='Ballkontakte= 0', bg='gray')
labelZustand_alt.place(x=750, y=365, width=150, height=30)
        



# Aktivierung des Fensters
tkFenster.mainloop()



input()
Execute

Output

Press the execute button or CTRL + enter to run code.

Inputs