在序言中查找所有最长的运行

时间:2018-11-27 04:55:23

标签: prolog

我正在尝试退回所有未使用的最长长度的纸牌。我得到了一张牌(列表),这张纸牌位于弃牌堆的顶部,我需要找到所有可能的纸牌,并返回所有可能的最长长度的纸牌。 nextCard查找下一张可玩的卡。

longestRun([],Disc,[]).
longestRun(Hand,[Hd|T],FinalRuns):-
   search(Hd,Hand,Run),
   reverse([Hd|Run],FinalRuns).

search(Disc,Hand,Path):-
   nextCard(Hand,Disc,Next),
   removeCard(Hand,Next,Nhand),
   search(Next,Nhand,Rest),
   Path = [Next|Rest].
search(_,_,[]).

0 个答案:

没有答案