Dan-Ioan BOLOHAN (25103) - Avionase

Autorul poate fi contactat la adresa: Login pentru adresa

Doua avioane vor fi amplasate pe tabela de joc. In fiecare runda, jucatorul va selecta o casuta a tabelei. Se spune ca jucatorul loveste in acea casuta. Daca a lovit “cabina” unui avion, acesta este distrus, iar jucatorul va fi informat de acest lucru. Daca a lovit o alta parte a unui avion va fi din nou informat de acest lucru. Jocul este castigat atunci cand au fost distruse ambele avioane. Obiectivul jocului este distrugerea celor doua avioane in cat mai putine runde. In functie de implementarea aleasa pozitia avioanelor poate fi aleasa aleator sau poate fi introdusa de un alt jucator.

Ca interfata de iesire se va folosi un LCD.

Pentru ca se doreste un design modern, se va incerca implementarea jocului cu doar doua butoane printre care unul pentru reset.

Din pacate insa LCD-ul nu a functionat, asa ca am fost nevoit sa implementez jocul pe desktop pentru a arata ce cum as fi vrut sa functioneze.

Programul va incepe prin a genera aleator intr-o matrice corespunzatoare displayului doua avioane. Acest lucru se realizeaza prin: 1. generarea aleatoare a unei pozitii pentru capul avionului 2. generarea aleatoare a unei directii 3. verificarea validitatii acestor date (posibilitatea de a introduce un avion in acel loc: sa intre in ecran si sa nu se suprapuna peste celalalt avion). In caz negativ, se repeta generarea.

Apoi va afisa pe ecran matricea zonelor lovite. Cu spatiu se va nota o casuta care nu a fost lovita, cu '-' o casuta lovita care nu continea nici un avion, cu 'X' o casuta lovita care continea o parte a avionului diferita de cabina, cu '*' cabina avionului.

Pentru implementarea jocului cu un singur buton, la afisarea matricei o casuta nelovita va fi marcata cu #. Daca utilizatorul apasa pe buton, este lovita casuta marcata.

Ideea este folosirea unui sistem de intreruperi la apasarea pe buton, care sa duca la lovirea casutei marcate si marcarea unei alte casute. Se foloseste si o intrerupere pe ceas care sa modifice casuta marcata la fiecare 0.1 secunde.

Jocul se termina atunci cand au fost lovite ambele cabine ale avioanelor. Va afisa pe ecran numarul de runde in care s-a reusit acest lucru. Va afisa si matricea completa.

Am folosit placa de baza standard PM2016 si un LCD de tip 2004A pe 4 randuri si 20 coloane.

Codul programului realizat

pm/prj2016/anitu/avionase.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0