Tema 1 - Robozzle
Tema 1 este compusa din 2 parti:
- rezolvarea unui joc pornind de la intelegerea voastra despre programarea procedurala, folosirea mecanismului de stiva
- implementarea rezolvarii in ASM pornind de la un template pus la dispozitie de mine.
Enuntul Temei 1 il gasiti aici.
Template-ul ASM pentru emu8086 pe care TREBUIE sa-l folositi este urmatorul, emulatorul emu8086 pe care trebuie sa-l folositi il gasiti aici. Template-ul deseneaza harta folosita in exemplul temei, dar nu si emularea miscarilor robotelului.
Pentru desenarea hartii exemplul foloseste:
- ~ pentru o casuta fara nici o stea, cu culoarea casutei
- * pentru casuta cu stea, cu culoarea corespunzatoare
- Z pentru pozitia curenta a robotului
Cam ce ar trebui implementat la partea de ASM:
- Crearea hartii jocului care v-a fost repartizat - fiecare harta se considera o matrice de X pe Y - si harta e formata din litere lower/upper case (daca au sau nu steluta) ce dau culoarea curenta. Matricea e serializata - e un vector continuu format din <row1><row2>....<rowN>
- Implementarea unei procedure de miscare a robotului - parametrii sunt pozitia initiala, pozitia finala. Practic se va updata afisarea celor 2 cazute (se va manca steaua de unde a plecat, se va afisa Z in cea noua). E suficient ca functia sa deseneze pe ecran doar aceste 2 zone.
- Implementarea procedurilor pentru simularea miscarii ... ca sa va opriti o puteti face cand numarul de stele a ajuns 0. Va ajutati de algorimul folosit in joc, puteti face fiecare sageata din aia o procedura.
Partea efectiva de emulare ar trebui sa o realizati in proceduri separate, si sa va preocupe performanta... cum ar fi sa nu reafisati harta de fiecare data - veti fi depunctati. De asemenea aveti grija ca robotul Z mananca stelele "*" de pe harta si le transforma in "~".
Pe site trebuie sa submiteti, pana la 24 Martie, 23:55 urmatoarea arhiva:
Nume_Prenume_grupa_tema1.zip ce va contine
-> numepuzzle_01.jpg, numepuzzle_02.jpg, numepuzzle_robozzle.asm
Aveti grija ca puteti uploada maxim 1MB deci sa micsorati pozele alea. De exemplu eu le-am facut cu tasta PrntScr - urmat de deschiderea in MsPaint si Paste (Ctrl+v). Am testat ca programul functioneaza pe Vista 32b, sa nu va plangeti ca nu va merge pe 64b din cauza afisarii DOS.
E.g. nume arhiva: Popescu_Ionut_333AB_tema1.zip
Fiecarui student i-a fost asignat un puzzle. LISTA o gasiti aici. Daca nu va regasiti/nu gasiti puzzle-ul mail pe yahoo. Nu uitati sa cautati in jurul paginii fiecarei grupe. De asemenea daca aveti un puzzle prea usor comparativ cu colegii vostrii va rog mail. Iau in considerare si situatia inversa...
3 puncte din tema se vor acorda si pentru eleganta/eficienta implementarii. Miscarile in general trebuie implementate ca functii (procedurii ASM) F1, F2, Fx emularea jocului se va face prin apel de PROCEDURI ( F1 PROC , CALL F1 ... etc)
Va rog sa nu-mi dati teme copiate, mai ales ca o parte importanta din notarea temei este data de rezolvarea unui joc logic.
Pentru a incarca tema (vedeti ca aveti limita la arhiva de 1MB) trebuie mai intai sa dati "Enrol" la acest curs.