![]() |
![]() |
![]() |
![]() |
Lahendaja | Märkused | Hinne | I töö | Kursuse hinne | |
Tanel Alumäe | Lahendus töötab hästi, kuid lao ja transporditavate kaupade parameetrid on programmi tekstis "kinni tinutatud" (s.t. nende muutmiseks peab kasutaja hakkama muutma programmi teksti - see ei ole talle tavaliselt kätte saadav/arusaadav ). Tee väljastamisel peaks kahe koordinaadi vahel olema mingi eraldaja, muidu muutub >10 mõõtmete korral positsioon arusaamatuks. | 5 | 5 | 5 | |
Rain Aarna | Lahendus on poolik ja ei tööta. Muutujaid Olemasolevad, Lahendus kusagil ei kasutata (need ei saa kusagil väärtust), sellepärast annab append(Kaidudkohad,Lahendus,Lahendus1) alati vea.
A> |
2 | 3 | 3 | |
Elken Sven | Lahenduse kasutajaliides on ei ole hea, (lao möötmed ja takistused on määratud programmi koodis, nö. "kinni tinutatud"), arusaamatuks jääb muutujate X,Y tähendust käivituspredikaadis start(X,Y) ei selg
itata (enne peaks ekraanile tulema mingi selgitus; programmi tekstis oleks võinud olla vähemalt kommentaarid); predikaat valjas(X,Y):-X<0,X>14, Y>0,Y<10. on arusaamatu (kas tingimused X jaoks ei peaks olema vastupidi?), mõtetu on
samade muutujate kordamine predikaadi peas: movestep(DX,DY,DX,DY) :- ...
|
1 | 5 | 3 | |
Urmas Lipso | Töötab, ja on ka kasutajaliides (veidi kummaline), kuid kasutaja ei saa lao suurust muuta ega kaste eemaldada, ka argumendi Nr kasutamine on arusaamatu, kui seda nagunii ei kontrollita. Andmebaasipr
edikaate votta, panna peaks alati kasutama ainult prediaaktide assert, retract, clause vahendusel, kuid predikaadi do_it kirjelduses on neid kasutatud ka "otse", s.t. ilma predikaadita clause - see an
nab vea, kui neid yldse pole kirjeldatud; kuna predikaadi asjad mõttest sain aru alles teksti uurides, siis võib kasutaja kergesti käivitada predikaadi pane_edasi ilma, et transporditavaid kaste yldse oleks ma"a"ratud. Milleks o
n predikaat nstart kui seda kusagil ei kasutata (v.a. kasutajale antavas help-is?)
|
5 | 5 | 5 | |
Ants Torim | Lahenduses: on hea süsteemipredikaadi random kasutamine juhusliku suuna valikuks!
|
5 | 5 | 5 | |
Valeri Putskov | Lahendused: It works, but not with every kind of obstacles. Instead of hard-coding obstacles into the text of predicates and repeating the same coordinates twise: go(RX,RY,SX,SY,[[3,3],[4,3]],[]), ..., go(R
X,RY,SX,SY,[[3,3],[4,3]],[]), (in programming, NEVER enter the same information in two places!), a separate predicate, e.g. obstacles([[3,3],[4,3]]) should have been used, so that the above go-statement goes obstacles(Obst),...,
go(RX,RY,SX,SY,Obst,[]) (there are also some other improvements to your text |
3 | 5 | 4 | |
Kalev Sullakatko | Lahenduses on lao parameetrid ja transporditava kauba asukoht määratud programmi tekstis, kasutaja saab muuta vaid roboti stardipositsiooni; kuna kasutaja suunast nagunii midagi ei tea, pole mõtet seda talt ka kü
sida, vaid määrata esimene suund ise, s.t. kasutaja käivitaks vaid predikaadi pane_lattu(X,Y) , mis on määratud lausega pane_lattu(X,Y):-pane_lattu(X,Y,paremale). . Kauba lähte- ja lõppseisu kirjeldavad predikaadid peaks kysima k
asutajalt ja need peaks pärast kauba siirdamist kustutama (predikaadiga retract ) nagunii teist korda seda seisu käivitada ei saa, sest lõpp-positsioon on nüüd hõivatud - tuleb teade 'Kaup jäi lattu panemata' (ja kasutaja jääb mõ
istatama - miks?)
|
4 | 3 | 4 | |
Jaanus Vapper | Lahenduses on viga:
predikaadis loe(N,A,L,A,L) peaks olema kontroll, mis ei võimalda Prologil N = 0 korral minna kasutama predikaadi määritluse teist lauset - kas esimeses lause kehas ! (cut) või teises lauses kontroll N > 0
. Kui paigutamine mingil põhjusel ei õnnestu (näiteks: kasutaja annab lähtekohtadena ruudud, kus EI ole kaste), sunnib Prologi backtracking kasutama predikaadi teist lauset ja kasutajalt hakatakse lõpmatuseni küsima uusi trasporditavaid kaste (mul
juhtus nii, mingit teadet vea kohta ei tule). Kontroll kasutaja antud andmete õigsuse kohat (lähtekohana antakse ruut, kus kasti ei ole) peaks olema kohe vastava data sisestamise järel, predikaat kontroll praegusel kujul isegi ei teata, mille
s on viga (kas lähtekohana ilma kastita ruut või sihtkoht juba hõivatud); teatest, et andmed on korras, on vähe abi.
|
5 | 4 | 5 | |
Sven Süld | _ | 3 | 2 | 3 | |
Dmitri Tselovalnikov | Lahenduse robot liigub nagu tank, s.t. olemasolevast kaubast (takistustest) üle; see juhtub sellepärast, et Amzi-Prolog 3.3 süsteemipredikaadiga member ei saa kontrollida nimistu liikmeid, kui nende
süntaktiline struktuur on keerulisem kui aatom (küsige Listener'i aknas member([3,4],[[2,3],[3,4]]). - vastuseks on no ; sellise kontrolli jaoks oleks pidanud kirjutama oma kontrolliva predikaadi (lisasin sellise predikaadi is_member Teie teksti lõppu). Läbitud teed ei salvestata, see võib (kui takistuste kontroll töötaks) tekitada tsüklis liikumise.
|
3 | |||
Anton Safonov | In your solution obstacles (clauses block ) are defined in program text (user can not change them without editing the text) and remain there, so after 2-3 runs user does not know any more, what is the
re and where; it is also not possible to run it with larger warehouse - the block clauses from previous run do not allow to use added space. The member_is |
3 | 5 | 4 |