Einsteinrätzel lösungsansatz - verstehe den Code nicht

StressMaker

Grünschnabel
Hallo,

Auf der Suche nach einer Lösung für das Einsteinrätsel habe ich folgenden Perl-Code gefunden.
Leider habe ich keine Ahnung, wie er zu lesen ist.
Ins besondere verstehe ich das Zeichen " :- " nicht.
Kann mir vieleicht einer einen Tipp geben, wie ich den Code zu lesen habe?

Ganz unten ist auch nochmal die Fragestellung.

MfG
Code:
------------------------------

/*
	Idee: wir ordnen Eigenschaften als Variablen (z.B. Hundebesitzer, Teetrinker)
	den Hausbezeichnungen zu (die als Konstanten repraesentiert sind)
*/


/* Beziehungen zwischen den Haeusern:
	- wir nehmen an, die Haeuser stehen in einer Reihe und
		beginnen mit der Zaehlung von links
*/
stehtLinksVon(erstesHaus, zweitesHaus).
stehtLinksVon(zweitesHaus, drittesHaus).
stehtLinksVon(drittesHaus, viertesHaus).
stehtLinksVon(viertesHaus, fuenftesHaus).

wohntLinksVon(X, Y) :- stehtLinksVon(X, Y).

wohntLinksVon(X, Y) :-
	stehtLinksVon(X, Z),
	wohntLinksVon(Z, Y).

wohntRechtsVon(X, Y) :-
	wohntLinksVon(Y, X).

wohntNeben(X, Y) :-
	stehtLinksVon(X, Y).

wohntNeben(X, Y) :-
	stehtLinksVon(Y, X).

/*
	Alle gegenseitigen Ausschlüsse:
*/

identisch(X, Y) :-
	X = Y.

nichtIdentisch(X, Y) :-
	wohntLinksVon(X, Y).

nichtIdentisch(X, Y) :-
	wohntRechtsVon(X, Y).

disjunkteEigenschaften(P1, P2, P3, P4, P5) :-
	nichtIdentisch(P1, P2),
	nichtIdentisch(P1, P3),
	nichtIdentisch(P1, P4),
	nichtIdentisch(P1, P5),
	nichtIdentisch(P2, P3),
	nichtIdentisch(P2, P4),
	nichtIdentisch(P2, P5),
	nichtIdentisch(P3, P4),
	nichtIdentisch(P3, P5),
	nichtIdentisch(P4, P5).

/*
	Alle Aussagen:
*/
welt(Zebrahalter, Daene, Norweger, Brite, Schwede, Deutscher) :-
	identisch(Brite, RotesHaus),
	identisch(Schwede, Hundehalter),
	identisch(Daene, Teetrinker),
	stehtLinksVon(GruenesHaus, WeissesHaus),
	identisch(GruenesHaus, Kaffeetrinker),
	identisch(PallMallRaucher, Vogelhalter),
	identisch(drittesHaus, Milchtrinker),
	identisch(GelbesHaus, DunhillRaucher),
	identisch(Norweger, erstesHaus),
	wohntNeben(MarlboroRaucher, Katzenhalter),
	wohntNeben(Pferdehalter, DunhillRaucher),
	identisch(WinfieldRaucher, Biertrinker),
	wohntNeben(Norweger, BlauesHaus),
	identisch(Deutscher, RothmansRaucher),
	wohntNeben(MarlboroRaucher, Wassertrinker),
	disjunkteEigenschaften(Brite, Schwede, Daene, Norweger, Deutscher),
	disjunkteEigenschaften(RotesHaus, GruenesHaus, WeissesHaus, GelbesHaus, BlauesHaus),
	disjunkteEigenschaften(Hundehalter, Vogelhalter, Katzenhalter, Pferdehalter, Zebrahalter),
	disjunkteEigenschaften(Teetrinker, Kaffeetrinker, Milchtrinker, Biertrinker, Wassertrinker),
	disjunkteEigenschaften(PallMallRaucher, DunhillRaucher, WinfieldRaucher, RothmansRaucher, MarlboroRaucher).

zebrahat(Nation) :-
	welt(Z,Dae,N,B,S,De),
	(
		(Z=Dae, Nation=daene);
		(Z=S, Nation=schwede);
		(Z=B, Nation=brite);
		(Z=N, Nation=norweger);
		(Z=De, Nation=deutsche)
	).




-----------------------------------------



  1. Es gibt fünf Häuser mit je einer anderen Farbe.
  2. In jedem Haus wohnt eine Person einer anderen Nationalität.
  3. Jeder Hausbewohner bevorzugt ein bestimmtes Getränk, raucht eine
    bestimmte Zigarettenmarke und hält ein bestimmtes Haustier.
  4. KEINE der 5 Personen trinkt das gleiche Getränk, raucht die gleichen
    Zigaretten oder hält das gleiche Tier wie einer seiner Nachbarn.

Frage: Wem gehört der Fisch?

Ihre Hinweise:

1. Der Brite lebt im roten Haus
2. Der Schwede hält einen Hund
3. Der Däne trinkt gerne Tee
4. Das grüne Haus steht links vom weißen Haus
5. Der Besitzer des grünen Hauses trinkt Kaffee
6. Die Person, die Pall Mall raucht, hält einen Vogel
7. Der Mann, der im mittleren Haus wohnt, trinkt Milch
8. Der Besitzer des gelben Hauses raucht Dunhill
9. Der Norwege wohnt im ersten Hausl
10. Der Marlboro-Raucher wohnt neben dem, der eine Katze hält
11. Der Mann, der ein Pferd hält, wohnt neben dem, der Dunhill raucht
12. Der Winfield-Raucher trinkt gerne Bier
13. Der Norwege wohnt neben dem blauen Haus
14. Der Deutsche raucht Rothmanns
15. Der Marlboro-Raucher hat einen Nachbarn, der Wasser trinkt
 

Neue Beiträge

Zurück