Moortiii icon

Neighbors

Moortiii | PRO | 11/13/19 09:49:14 PM UTC | 0 ⭐ | 7673 👁️ | Never ⏰ | []
Prolog |

590 B

|

None

|

0 👍

/

0 👎

:- use_module(library(clpfd)).
 
valid_neighbors(_, [_]).
 
valid_neighbors(Size, [A, N, B|T]):-
    N = x,
    A #> 0,
    A #=< Size,
    (A #= B - 1;
     A #= B + 1),
    valid_neighbors(Size, [B|T]).
 
valid_neighbors(Size, [A, N, B|T]):-
    N = o,
    A #> 0,
    A #=< Size,
    A #\= B - 1,
    A #\= B + 1,
    valid_neighbors(Size, [B|T]).
 
% Sample Query
?- valid_neighbors(4, [A, x, B, o, C, x, D]).
 
% Output
A in 1..3,
A+1#=B,
B in 2..4,
B#\=C+1,
C#\=B+1,
C in 1..4,
C+1#=D,
D in 2..5 % Size is passed as 4, how can D be 5 when we have the constraint A #=< Size?

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎