Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- :- use_module(library(lists)).
- :- use_module(library(clpfd)).
- %cor(amarelo, 1).
- %cor(azul, 2).
- %cor(preto, 3).
- %cor(verde, 4).
- search_car(Cor, Tam) :-
- % def vars
- Cor = [C1, C2, C3, C4],
- Tam = [T1, T2, T3, T4],
- % dominios
- domain(Cor, 1, 4),
- domain(Tam, 1, 4),
- % carro antes do azul é maior do que o a seguir ao azul
- element(PosAzul, Cor, 2),
- PosAntesAzul #= PosAzul - 1,
- PosSeguirAzul #= PosAzul + 1,
- element(PosAntesAzul, Tam, TamAntes),
- element(PosSeguirAzul, Tam, TamSeguir),
- TamAntes #< TamSeguir,
- % carro verde tem o tamanho mais pequeno
- element(PosVerde, Cor, 4),
- element(PosVerde, Tam, 1),
- % o carro verde está depois do carro azul
- PosVerde #> PosAzul,
- % o carro amarelo está depois do preto
- element(PosAmarelo, Cor, 1),
- element(PosPreto, Cor, 3),
- PosAmarelo #> PosPreto,
- % tamanhos todos diferentes
- all_different(Cor),
- all_different(Tam),
- % labeling
- append(Tam, Cor, Vars),
- labeling([], Vars).
Advertisement
Add Comment
Please, Sign In to add comment