This shows you the differences between two versions of the page.
pm:prj2022:sgherman:defuse_bomb_puzzle [2022/05/26 13:12] andrei_liviu.labau [Jurnal] |
pm:prj2022:sgherman:defuse_bomb_puzzle [2022/05/26 13:44] (current) andrei_liviu.labau [Concluzii] |
||
---|---|---|---|
Line 44: | Line 44: | ||
Codul sursă al proiectului este disponibil [[https://github.com/RuntimeErrorGr/Defuse-the-Bomb-PM|aici]]. | Codul sursă al proiectului este disponibil [[https://github.com/RuntimeErrorGr/Defuse-the-Bomb-PM|aici]]. | ||
- | Am ales să implementez acest proiect sub forma unui automat finit de stări a cărui diagramă se poate găsi mai jos. În total am adăugat 21 de stări principale pentru a izola cât mai bine diferitele funcționalități ale jocului și pentru a oferi o experiență cât mai plăcută și intuitivă utilizatorului. În continuare voi face o scurtă prezentare a flowului prin aceste stări: | + | Am ales să implementez acest proiect sub forma unui automat finit de stări a cărui diagramă se poate găsi mai jos. În total am adăugat 22 de stări principale pentru a izola cât mai bine diferitele funcționalități ale jocului și pentru a oferi o experiență cât mai plăcută și intuitivă utilizatorului. În continuare voi face o scurtă prezentare a flowului prin aceste stări: |
- Selectarea modului de joc: utilizatorul alege dacă vrea să joace modul sandbox sau domination. Se verifică dacă care buton este apăsat, se generează beepul de apăsare și se înaintează în starea corespunzătoare. Dacă este ales domination automatul intră în starea 1, iar dacă este ales sandbox automatul intră în starea 7. Dacă nu este apăsat niciun buton automatul rămâne în starea 0. | - Selectarea modului de joc: utilizatorul alege dacă vrea să joace modul sandbox sau domination. Se verifică dacă care buton este apăsat, se generează beepul de apăsare și se înaintează în starea corespunzătoare. Dacă este ales domination automatul intră în starea 1, iar dacă este ales sandbox automatul intră în starea 7. Dacă nu este apăsat niciun buton automatul rămâne în starea 0. | ||
- S-a intrat în modul domination. Se generează random un timer între 20 și 40 secunde. După generare se înaintează în starea 2. | - S-a intrat în modul domination. Se generează random un timer între 20 și 40 secunde. După generare se înaintează în starea 2. | ||
Line 67: | Line 67: | ||
- Stările 20 și 21 sunt stări în care se poate seta numărul de secunde din timerul custom din modul sandbox. Acestea au fost adăugate abia la final deoarece acest feature nu era în planul inițial. | - Stările 20 și 21 sunt stări în care se poate seta numărul de secunde din timerul custom din modul sandbox. Acestea au fost adăugate abia la final deoarece acest feature nu era în planul inițial. | ||
- | Pe lângă cele 21 stări principale am mai folosit și 4 stări în care automatul poate intra odată ce s-a declanșat procesul de dezamorsare. Utilitatea acestora poate fi înțeleasă mai bine în raport cu întreg mecanismul de dezamorsare: | + | Pe lângă cele 22 stări principale am mai folosit și 4 stări în care automatul poate intra odată ce s-a declanșat procesul de dezamorsare. Utilitatea acestora poate fi înțeleasă mai bine în raport cu întreg mecanismul de dezamorsare: |
Pentru a tine minte care este secvența corectă de fire ce trebuie decuplate m-am folosit de 5 arrayuri de valori boolene. Fiecărui index îi corespunde o culoare stabilită arbitrar: | Pentru a tine minte care este secvența corectă de fire ce trebuie decuplate m-am folosit de 5 arrayuri de valori boolene. Fiecărui index îi corespunde o culoare stabilită arbitrar: | ||
0 - roșu, 1 - albastru, 2 - verde, 3 - galben. 0 - fir cuplat, 1 - fir decuplat. | 0 - roșu, 1 - albastru, 2 - verde, 3 - galben. 0 - fir cuplat, 1 - fir decuplat. | ||
Line 84: | Line 84: | ||
În final am reușit să implementez funcționalitățile de bază pe care mi le-am propus la începutul proiectului, însă cu mici modificări aduse pe parcurs datorită calității îndoielnice a componentelor avute la dispoziție. | În final am reușit să implementez funcționalitățile de bază pe care mi le-am propus la începutul proiectului, însă cu mici modificări aduse pe parcurs datorită calității îndoielnice a componentelor avute la dispoziție. | ||
Atașez mai jos imagini cu proiectul final. | Atașez mai jos imagini cu proiectul final. | ||
+ | |||
+ | |||
+ | {{:pm:prj2022:sgherman:bomba_5.jpg?600 |}} | ||
+ | {{:pm:prj2022:sgherman:bomba_1.jpg?550|}} | ||
+ | {{:pm:prj2022:sgherman:bomba_4.jpg?200|}} | ||
+ | {{:pm:prj2022:sgherman:bomba_9.jpeg?450 |}} | ||
+ | |||
===== Concluzii ===== | ===== Concluzii ===== | ||
Sunt mulțumit de rezultatul obținut întrucat am reușit să refac un joc drag mie. Am mai lucrat înainte cu Arduino, dar aceasta a fost o provocare. | Sunt mulțumit de rezultatul obținut întrucat am reușit să refac un joc drag mie. Am mai lucrat înainte cu Arduino, dar aceasta a fost o provocare. | ||
- | Din păcate nu am reușit să adaug un feature extra, acela de a detona bomba prin apel telefonic folosind o cartelă SIM datorită unor probleme hardware. Modulul GSM (sim800l) pe care am încercat să-l folosesc pentru a realiza legătura cu apelurile telefonice nu a reușit să se conecteze la rețea, deși cablajul și alimentarea le-am realizat după indicațiile din datasheet. | + | Din păcate nu am reușit să adaug un feature extra, acela de a detona bomba prin apel telefonic folosind o cartelă SIM datorită unor probleme hardware. {{:pm:prj2022:sgherman:bomba_10.jpeg?450 |}}Modulul GSM (sim800l) pe care am încercat să-l folosesc pentru a realiza legătura cu apelurile telefonice nu a reușit să se conecteze la rețea, deși cablajul și alimentarea le-am realizat după indicațiile din datasheet. |
- | ===== Download ===== | + | |
+ | ===== Download ===== | ||
+ | {{:pm:prj2022:sgherman:defuse_the_bomb.zip|}} | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
- | <note>**01.05.2022** Creare pagina wiki | + | <note>**01.05.2022** Creare pagina wiki. |
- | **12.05.2022** Creare repo [[https://github.com/RuntimeErrorGr/Defuse-the-Bomb-PM|GitHub]] | + | **12.05.2022** Creare repo [[https://github.com/RuntimeErrorGr/Defuse-the-Bomb-PM|GitHub]]. |
**14.05.2022** Implementare functionalitati de baza: | **14.05.2022** Implementare functionalitati de baza: | ||
Line 102: | Line 110: | ||
- dezamorsare cu decuplare fire | - dezamorsare cu decuplare fire | ||
- detonare | - detonare | ||
- | Probleme intampinate: efect de bouncing foarte mare pe butoane | + | Probleme intampinate: efect de bouncing foarte mare pe butoane. |
**15.05.2022** Adaugare moduri de joc Domination si Sandbox. | **15.05.2022** Adaugare moduri de joc Domination si Sandbox. |