Avatar billede thecokeguy Nybegynder
29. november 2008 - 20:42 Der er 1 løsning

Nabo kontrol i prolog

Hej...

Jeg sidder med er prolog program, hvor jeg har deklareret en håndfuld celler på flg. måde:

cell(1, 2).
cell(1, 3).
etc.

Jeg ville gerne lave en clause, der kontrollerer om to celler er naboer. Jeg har forsøgt mig med flg.

neighbor(c(X, Y), c(Z, W)) :- X =:= Z + 1, Y =:= W.
neighbor(c(X, Y), c(Z, W)) :- X =:= Z - 1, Y =:= W.
neighbor(c(X, Y), c(Z, W)) :- Y =:= W + 1, X =:= Z.
neighbor(c(X, Y), c(Z, W)) :- Y =:= W - 1, X =:= Z.

...hvilket åbenlyst ikke fungerer hvis f.eks. den ene celle er ubekendt.

Nogen forslag til hvordan jeg får det til at fungere? Hvad gør jeg evt. forkert?

på forhånd tak for hjælpen
Avatar billede thecokeguy Nybegynder
30. november 2008 - 01:22 #1
Fik det løst selv...

neighbors(c(X, Y), c(Z, Y)) :- Z is X + 1.
neighbors(c(X, Y), c(Z, Y)) :- Z is X - 1.
neighbors(c(X, Y), c(X, W)) :- W is Y + 1.
neighbors(c(X, Y), c(X, W)) :- W is Y - 1.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester