Dominoes: Difference between revisions
Content added Content deleted
Line 248: | Line 248: | ||
possshort = Thread[poss -> Range[Length[poss]]]; |
possshort = Thread[poss -> Range[Length[poss]]]; |
||
possshorti = Thread[Range[Length[poss]] -> poss]; |
possshorti = Thread[Range[Length[poss]] -> poss]; |
||
⚫ | |||
posssets = |
|||
⚫ | |||
posssets = {# /. possshort, Sort[Extract[tab, #]]} & /@ posssets; |
posssets = {# /. possshort, Sort[Extract[tab, #]]} & /@ posssets; |
||
posss = GatherBy[posssets, Last]; |
posss = GatherBy[posssets, Last]; |
||
Line 266: | Line 265: | ||
newplaced = Append[placed, next[[1]] -> n]; |
newplaced = Append[placed, next[[1]] -> n]; |
||
newleft = Drop[sortedleft, 1]; |
newleft = Drop[sortedleft, 1]; |
||
newleft[[All, 2]] = |
newleft[[All, 2]] = newleft[[All, 2]] /. {___, Alternatives @@ n, ___} :> Sequence[]; |
||
newleft[[All, 2]] /. {___, Alternatives @@ n, ___} :> |
|||
Sequence[]; |
|||
If[AnyTrue[newleft[[All, 2]], Length/*EqualTo[0]], Continue[]]; |
If[AnyTrue[newleft[[All, 2]], Length/*EqualTo[0]], Continue[]]; |
||
RecursePlaceDomino[newplaced, newleft] |
RecursePlaceDomino[newplaced, newleft] |