|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 2560 (0xa00)
Types: TextFile
Names: »BONDEN.SCL«
└─⟦216f59cd8⟧ Bits:30002641 SCANLOG - Piccoline vers. nov. 87
└─⟦this⟧ »BONDEN.SCL«
find_vej(X,Y) hvis
udvid(<tilstand(X,X,X,X)>,Res,tilstand(Y,Y,Y,Y)) og
find_een(fortolk(Res)).
udvid(X,X,Z) hvis
slutter_ved(X,Z).
udvid(X,Y,Z) hvis
et_skridts_udvidelse(X1,X),
løkke_fri(X1) og
udvid(X1,Y,Z).
slutter_ved(<X1..X>,X1).
løkke_fri(<X1..X>) hvis
ikke(er_med_i(X1,X)).
et_skridts_udvidelse(<X1..X>,X) hvis
slutter_ved(X,Y) og
til(Y,X1).
er_med_i(Element,<Element..Hale>).
er_med_i(Element,<Hoved..Hale>) hvis
er_med_i(Element,Hale).
;tilstand: parametrene betyder position af bonde, ulv, ged og kålhovedet
;Bonden sejler over alene:
til(tilstand(B1,U1,G1,K1),tilstand(B2,U1,G1,K1)) hvis
modsat(B1,B2),
ikke(ulovlig(B2,U1,G1,K1)) og
ikke(ulovlig(B1,U1,G1,K1)).
;Bonden tager ulven med:
til(tilstand(B1,B1,G1,K1),tilstand(B2,B2,G1,K1)) hvis
modsat(B1,B2),
ikke(ulovlig(B2,B2,G1,K1)) og
ikke(ulovlig(B1,B1,G1,K1)).
;Bonden tager geden med:
til(tilstand(B1,U1,B1,K1),tilstand(B2,U1,B2,K1)) hvis
modsat(B1,B2),
ikke(ulovlig(B2,U1,B2,K1)) og
ikke(ulovlig(B1,U1,B1,K1)).
;Bonden tager kålhovedet med:
til(tilstand(B1,U1,G1,B1),tilstand(B2,U1,G1,B2)) hvis
modsat(B1,B2),
ikke(ulovli) og
ikke(ulovlig(B1,U1,G1,B1)).
;Geden og ulven er begge modsat bonden:
ulovlig(B1,U1,U1,K1) hvis
modsat(B1,U1).
;Geden og kålhovedet er begge modsat bonden:
ulovlig(B1,U1,G1,G1) hvis
modsat(B1,G1).
modsat(nord,syd).
modsat(syd,nord).
skriv_side(syd) hvis
skriv('sydbredden').
skriv_side(nord) hvis
skriv('nordbredden').
fortolk(<tilstand(N,N,N,N)>) hvis
skriv('De er alle på'),
skriv_side(N) og
nylinie.
fortolk(<X,Y..L>) hvis
fortolk(<Y..L>) og
fortæl(X,Y).
fortæl(tilstand(B1,B1,G1,K1),tilstand(B2,B2,G1,K1)) hvis
skriv('Bonden sejler med ulven fra'),
skriv_side(B2),
skriv('til'),
skriv_side(B1) og
nylinie.
fortæl(tilstand(B1,U1,B1,K1),tilstand(B2,U1,B2,K1)) hvis
skriv('Bonden sejler med geden fra'),
skriv_side(B2),
skriv('til'),
skriv_side(B1) og
nylinie.
fortæl(tilstand(B1,U1,G1,B1),tilstand(B2,U1,G1,B2)) hvis
skriv('Bonden sejler med kålhovedet fra'),
skriv_side(B2),
skriv('til'),
skriv_side(B1) og
nylinie.
fortæl(tilstand(B1,U1,G1,K1),tilstand(B2,U1,G1,K1)) hvis
skriv('Bonden sejler alene fra'),
skriv_side(B2),
skriv('til'),
skriv_side(B1) og
nylinie.
«eof»