https://github.com/andreip/robot-explore
school assignment
https://github.com/andreip/robot-explore
Last synced: about 1 year ago
JSON representation
school assignment
- Host: GitHub
- URL: https://github.com/andreip/robot-explore
- Owner: andreip
- Created: 2014-01-15T22:15:48.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2014-01-15T22:16:02.000Z (over 12 years ago)
- Last Synced: 2025-02-12T12:57:00.157Z (over 1 year ago)
- Language: Java
- Size: 145 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README
Awesome Lists containing this project
README
Petre Andrei, 342 C3
== Harta ==
Harta este citita din fisier din folder-ul maps/, trebuie data la intrarea
fisierului Main.
Exemplu harta:
S 0 0 0 0 0
1 0 x 0 0 S
S 1 1 1 0 0
Simboluri:
* x pozitia de start
* 0 pozitii free pe harta
* S mlastina pe harta (swamp)
* 1 zid pe harta
* ? stare de inceput a zonei necunoscute inca (doar la runtime)
Harta incepe cu coordonate (0,0) si evolueaza in jos si la dreapta.
|----> (0,3) width
|
|
v
(3,0)
height
== General ==
Implementarea consta in a face parcurgeri DFS repetate, pana cand nu se mai
pot obtine informatii noi de pe harta.
Robotul nu cunoaste detalii precum "ce se afla pe harta", sau care este
dimensiunea acestuia, el doar primeste o lista de mutari valide dpdv al
hartii si acolo merge, incercand toate combinatiile.
Am implementat si bonus, miros cu intensitate. Harta din maps/simple este
un bun exemplu de ce cu miros se pot afla mai multe detalii despre harta.
Pentru ca fara miros harta va ramane asa:
S 0 0 0 0 0
1 0 0 0 0 S
? 1 1 1 ? ?
iar cu miros:
S 0 0 0 0 0
1 0 0 0 0 S
? 1 1 1 0 0
Asta pentru ca atunci cand se afla in coordonatele (1, 4) se afla langa o mlastina,
insa nu stie daca este singura mlastina (daca nu are intensitatea mirosului),
si deci nu poate incerca sa exploreze (2, 4), pentru ca ar fi riscant. La miros
insa poate, pentru ca a fost descoperita S (mlastina) pe alta cale, din pozitia (0, 5)
prin eliminare, pentru ca simtea miros insa pozitia (0, 4) era cunoscuta ca nefiind
mlastina.
== Rulare ==
Am adaugat un fisier build.xml unde este setat fisierul maps/simple la intrare. Se poate
modifica in maps/simple2.
$ ant run