def init():
     """initialise les variables en relation avec le bouton recommencer"""
     memoire["cellules"]=[]
     memoire["listeV"]=[]
     memoire["listeP"]=[]
     memoire["inAfCel"]=[0,20]
     for i in range(len(memoire["afCellules"])):
         efCellules(memoire["afCellules"][i])
     memoire["afCellules"]=[]
     for i in range(9): statMenu[i].set(0)
     temps.set(-1)
     nbCel.set(20)
     affInt.set("")
 def zoomP():
     """zoom plus, augmente la taille des céllules pour en faire disparaître la ligne du haut
      La ligne du bas reste en place."""
     tempsAfCel0=temps.get()-memoire["inAfCel"][0]
     if memoire["inAfCel"][1]<10 or memoire["inAfCel"][0]<2 : return
     memoire["inAfCel"][0]-=1
     memoire["inAfCel"][1]-=1
     efCellules(memoire["afCellules"][0])
     for i in range(1,len(memoire["afCellules"])):
         efCellules(memoire["afCellules"][i])
         memoire["afCellules"][i]=afCellules(drawing,deepcopy(
             memoire["cellules"][tempsAfCel0+1+i]), i-1,round(hCanvas/memoire["inAfCel"][1],1),kCanvas)
         memoire["afCellules"][i-1]=memoire["afCellules"][i]
     memoire["afCellules"].pop()
 def zoomM():
     """zoom moins, diminue la taille des céllules pour en faire apparaître
      une ligne supplémentaire en bas. La ligne du haut reste en place.
      Actualise les statistiques par rapport à la dernière cellule affichée."""
     tempsAfCel0=temps.get()-memoire["inAfCel"][0]
     tempsAfCelMax=temps.get()-memoire["inAfCel"][0]+memoire["inAfCel"][1]+1
     memoire["inAfCel"][1]+=1
     for i in range(len(memoire["afCellules"])):
         efCellules(memoire["afCellules"][i])
         memoire["afCellules"][i]=afCellules(drawing,deepcopy(
             memoire["cellules"][tempsAfCel0+1+i]), i,round(hCanvas/memoire["inAfCel"][1],1),kCanvas)
     if tempsAfCelMax <= temps.get():
         memoire["afCellules"].append(afCellules(drawing,deepcopy(
             memoire["cellules"][tempsAfCelMax]), memoire["inAfCel"][1]-1,round(hCanvas/memoire["inAfCel"][1],1),kCanvas))
         stats_i=statsLigne(deepcopy(memoire["cellules"][tempsAfCelMax]))
         afStatistiques(stats_i, memoire["listeV"][:tempsAfCelMax+1],
              memoire["listeP"][:tempsAfCelMax+1], statMenu)
         tempsHist.set(tempsAfCelMax)
 def scrollB():
     """scroll vers le bas, déplace les céllules vers le haut et fait apparaître
      la cellule suivante en haut de l'écran.
      Actualise les statistiques par rapport à la dernière cellule affichée."""
     tempsAfCel0=temps.get()-memoire["inAfCel"][0]
     if memoire["inAfCel"][0] == 0: return
     efCellules(memoire["afCellules"][0])
     for i in range(1,len(memoire["afCellules"])):
         efCellules(memoire["afCellules"][i])
         memoire["afCellules"][i-1]=afCellules(drawing,deepcopy(
             memoire["cellules"][tempsAfCel0+i+1]), i-1,round(hCanvas/memoire["inAfCel"][1],1),kCanvas)
     tempsAfCelMax=temps.get()-memoire["inAfCel"][0]+memoire["inAfCel"][1]+1
     if tempsAfCelMax > temps.get():
         memoire["afCellules"].pop()
         tempsHist.set(temps.get())
     else:
         memoire["afCellules"][memoire["inAfCel"][1]-1]=afCellules(drawing,deepcopy(
             memoire["cellules"][tempsAfCelMax]), memoire["inAfCel"][1]-1,round(hCanvas/memoire["inAfCel"][1],1),kCanvas)
         stats_i=statsLigne(deepcopy(memoire["cellules"][tempsAfCelMax]))
         afStatistiques(stats_i, memoire["listeV"][:tempsAfCelMax+1], memoire["listeP"][:tempsAfCelMax+1], statMenu)
         tempsHist.set(tempsAfCelMax)
     memoire["inAfCel"][0]-=1
 def scrollH():
     """scroll vers le haut, déplace les céllules vers le bas et fait apparaître
      la cellule précédente en haut de l'écran.
      Actualise les statistiques par rapport à la dernière cellule affichée."""
     tempsAfCel0=temps.get()-memoire["inAfCel"][0]
     if tempsAfCel0 < 0: return
     if memoire["inAfCel"][0] >= memoire["inAfCel"][1]:
         efCellules(memoire["afCellules"][memoire["inAfCel"][1]-1])
         stats_i=statsLigne(deepcopy(memoire["cellules"][tempsAfCel0+memoire["inAfCel"][1]-1]))
         afStatistiques(stats_i, memoire["listeV"][:tempsAfCel0+memoire["inAfCel"][1]],
              memoire["listeP"][:tempsAfCel0+memoire["inAfCel"][1]], statMenu)
         tempsHist.set(tempsAfCel0+memoire["inAfCel"][1]-1)
     else:
         memoire["afCellules"].append(0)
         tempsHist.set(temps.get())
     n=len(memoire["afCellules"])
     for i in range(1,n):
         efCellules(memoire["afCellules"][n-i-1])
         memoire["afCellules"][n-i]=afCellules(drawing,deepcopy(
             memoire["cellules"][tempsAfCel0+n-i]), n-i,round(hCanvas/memoire["inAfCel"][1],1),kCanvas)
     memoire["afCellules"][0]=afCellules(drawing,deepcopy(
         memoire["cellules"][tempsAfCel0]), 0,round(hCanvas/memoire["inAfCel"][1],1),kCanvas)
     memoire["inAfCel"][0]+=1