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 ).