class Galette :
    def __init__(self,etoile):
        self.etoile = etoile # nb d etoiles
        
    def dessine(self):
        if self.etoile !=0:
            return [" " for i in range(4-self.etoile//2)] +  ["*" for i in range(self.etoile)]+\
                       [" " for i in range(4-self.etoile//2)]
        else :
            return [ " " for i in range(4)]+["|"]+[ " " for i in range(4)]
  
class Dessin :
    def __init__(self) :
        self.nb_coup = 0
        self.tour = [0,5,5] # position libre
        self.tous_les_galets = [ [Galette(0)] +[Galette(i) for i in range(1,10,2) ] , \
                                 [Galette(0) for i in range(6)] , [Galette(0) for i in range(6)] ]
             
    def affichage_galets(self):
        for i in range(6) :
            for j in range(3) :
                for k in self.tous_les_galets[j][i].dessine():
                    print(k , end = " ")
            print(" ")
          
    def echange_position(self,t_depart,t_arrivee) :
        g = self.tous_les_galets[t_depart][self.tour[t_depart]+1]
        self.tous_les_galets[t_depart][self.tour[t_depart]+1] = Galette(0)
        self.tous_les_galets[t_arrivee][self.tour[t_arrivee]]= g
        self.tour[t_depart] = self.tour[t_depart]+1
        self.tour[t_arrivee]=self.tour[t_arrivee] -1

    def possibilite_deplacement(self,t_d,t_a) :
        try :
            g_d = self.tous_les_galets[t_d][self.tour[t_d]+1]
            if self.tour[t_a] == 5 :
                return True
            else :
                g_a = self.tous_les_galets[t_a][self.tour[t_a]+1]
                return g_a.etoile > g_d.etoile
        except :
            return False
        
    def verification_fin_de_jeu(self):
        g = self.tous_les_galets[2][1]
        return g.etoile == 1

    def jeu(self):
        self.affichage_galets()
        while not(self.verification_fin_de_jeu()) :
            t_d = int(input("tour de depart : "))
            t_a = int(input("tout d'arrivee : "))
            if self.possibilite_deplacement(t_d,t_a) :
                self.echange_position(t_d,t_a)
                self.affichage_galets()
                self.nb_coup +=1
            else :
                print("deplacement impossible")
        print("gagne en " + str(self.nb_coup))

      

if __name__ == "__main__" :
    j = Dessin()
    j.jeu()        

   
