În cele ce urmează este explicată o
versiune simplificată, în modul text. Dvs. veţi realiza o
versiune cu interfaţă grafică.
Un robot telecomandat, trebuie
să exploreze un labirint. Labirintul
are ziduri şi goluri (coridoare). Configuraţia labirintului, pe care
robotul urmează să-l
exploreze este dată în fişierul labirint.txt sub forma unor linii formate din caractere: 'z'
pentru zid, 'e' pentru
spaţiu exterior labirintului şi spaţii pentru gol interior. Robotul
cunoaşte
configuraţia labirintului pe măsură ce îl explorează. Robotul
înţelege
următoarele comenzi date de utilizator (literele mari şi mici au
aceeaşi semnificaţie):
a.
Vezi, codificată prin litera 'v', face ca robotul să primească un răspuns de la senzorul său
visual sub
forma unui String de 9 caractere din setul 'z'
(zid), ' ' (spaţiu
pentru gol interior) şi 'e'
(spaţiu exterior labirintului) în funcţie de ce vede în
cele 9 celule
care îl înconjoară. Prima celulă văzută este cea din faţă,
apoi urmează
celelalte în sens orar. Roby e miop, nu vede mai departe de atât.
b.
Roteşte, codificată prin 2 litere: prima este 'r', iar cea de a doua indică direcţia stânga ('S')
sau dreapta ('D') care
face ca robotul să se întoarcă cu 90o în
direcţia
indicată;
c.
Păşeşte, codificată prin 'p', care face ca
robotul să avanseze cu o celulă spre înainte, în direcţia
în care este orientat.
Dacă nu se poate deplasa în directia respectivă, atunci comanda
nu are nici un
efect.
Exemplu de conţinu
pentru fişierul labirint.txt. Robotul este
marcat cu litera R:
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
ezzzzzzzzzzzzzzzzzzzzzzzzzzzzzze
e
z
ze
ezzzzzzzzz z
zzzzzzzzzzzzzzzz ze
ez
z z z
z ze
ez
z z z z
z z ze
ez
z z z zzzzzzzzzzzz z ze
ez
z
z
z ze
ezzzzzzzzzzzzzRzzzzzzzzzzzzzzzze
eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Exemplu de comenzi:
v
//
returneaza " zooozz"
p
v
//
returneaza " z z zzz"
p
v
//
returneaza " zz zzz"
p
v
//
returneaza " zz zzz"
p
v
//
returneaza "zz z zzz"
r D
v //
returneaza
" z zzzzz"
p
După aceste comenzi,
imaginea robotului asupra
labirintului este următoarea:
zzz
zR
z z
z z
z
z
z
eee