depart( [blanc, blanc, blanc, vide, noir, noir, noir] ). arrivee( [noir, noir, noir, vide, blanc, blanc, blanc] ). coup( [blanc | [vide | Cases]] , [vide | [blanc | Cases]]). coup( [vide | [noir | Cases]] , [noir | [vide | Cases]]). coup( [blanc | [vide | Cases]] , [vide | [blanc | Cases]]). coup( [blanc | [vide | Cases]] , [vide | [blanc | Cases]]). coup( [blanc | [vide | Cases]] , [vide | [blanc | Cases]]). jouer( Config, [Config] ) :- arrivee( Config ). jouer( Config, [Config|ConfigsSuivantes] ) :- coup( Config, ConfigSuivante), jouer( ConfigSuivante, ConfigsSuivantes). sixpions (ListeConfigs) :- depart( Config ), jouer( Config , ListeConfigs ).