Differences

This shows you the differences between two versions of the page.

Link to this comparison view

poo-is-ab:tema:2025:03 [2025/12/08 11:38]
marius.trifu
poo-is-ab:tema:2025:03 [2025/12/11 18:00] (current)
marius.trifu [7. Exemplu Simplificat]
Line 266: Line 266:
  
 <note warning> <note warning>
-**⚠️ IMPORTANT - Anti-copiere:​** Dacă se detectează teme copiate sau cod plagiat, **se acordă 0 puncte** pentru întreaga temă, indiferent de rezultatele testelor.+**⚠️ IMPORTANT - Anti-copiere:​** Dacă se detectează teme copiate sau cod plagiat, **se acordă 0 puncte** pentru întreaga temă, indiferent de rezultatele testelor/bonusuri.
  
-**⚠️ IMPORTANT - Notare:** Dacă tema nu compilează sau nu trece niciun test, tema este notată direct cu **0 puncte**.+**⚠️ IMPORTANT - Notare:** Dacă tema nu compilează sau nu trece niciun test, tema este notată direct cu **0 puncte**, nu se primeste nici bonus.
 </​note>​ </​note>​
  
Line 285: Line 285:
  
 ==== 4.3 Bonus Clasament ==== ==== 4.3 Bonus Clasament ====
-  * **TODO:** Bonus-ul pentru clasament va apărea în scurt timp. +  * Bonus acordat în funcție de poziția în clasamentul duelurilor:​ 
-  * Clasamentul ​va fi calculat prin rularea temelor studenților ​între ​ele (dueluri), unde fiecare temă va avea un scor bazat pe performanța ​în aceste dueluri+    ​Loc 1: **+6p** 
-  * Detalii despre calculul bonus-ului vor fi anunțate ulterior.+    * Loc 2-3: **+5p** 
 +    * Loc 4-5: **+4p** 
 +    * Loc 6-10: **+3p** 
 +    * Loc 11-20: **+2p** 
 +    * Loc 21-25: **+1p** 
 +  * Clasamentul ​se calculează din duelurile ​între ​teme; bonusul se acordă în plus față de punctele din teste/​README
 +  * În tabelul cu scoruri există un buton care deschide pagina cu clasamentul duelurilor; acolo poți vedea și animația/​replay-ul fiecărui duel.
  
-===== 5. Încărcare și Testare =====+===== 5. Depunctări ===== 
 + 
 +Depunctări dacă: 
 +  * Nu redenumești corect repository-ul:​ -0.5p 
 +  * Codul nu trece verificarea cu Valgrind (se verifică manual la final): -1p 
 +  * Codul nu este împărțit în fișiere separate (.h / .cpp): -0.5p 
 +  * Cod scris fără comentarii minime/​structură clară, variabile numite aleator: până la -1p 
 +  * Folosești AI (ChatGPT/​Copilot etc.) fără să menționezi clar în README ce porțiuni au fost generate sau dacă depășești 30% din cod generat de AI: până la -6p 
 + 
 +Foarte important: după accept, redenumește repository-ul în formatul: 
 +  * `tema3-32XAB-Nume-Prenume` 
 +  * Exemplu: `tema3-322AB-Trifu-Marius` 
 + 
 +Cum redenumești pe GitHub: 
 +  1. Intră în repository 
 +  2. Click pe Settings 
 +  3. Secțiunea General → Repository name 
 +  4. Schimbă în `tema3-32XAB-Nume-Prenume` 
 +  5. Click Rename 
 + 
 +===== 6. Încărcare și Testare =====
  
 **Comenzi Make:** **Comenzi Make:**
Line 300: Line 326:
 </​code>​ </​code>​
  
-===== 6. Exemplu Simplificat =====+===== 7. Exemplu Simplificat =====
  
-**Scenariu:​** Hartă 5×5, tu (Jucător 1) ești la (0,0), adversarul (Jucător 2) la (3,2), punctul final la (4,4). Hartă cu resurse, pereți și power-ups. Trebuie să ajungi la (4,4) înainte de 20 de runde.+**Scenariu:​** Hartă 5×5, tu (Jucător 1) ești la (0,0), adversarul (Jucător 2) la (3,2), punctul final la (4,4). Hartă cu resurse, pereți și power-ups. Trebuie să ajungi la (4,4) înainte de 10 de runde.
  
 ^ Input ^ ^ Input ^
Line 351: Line 377:
   * Dacă se termină rundele și nu ești la (4,4) → testul pică (0 puncte).   * Dacă se termină rundele și nu ești la (4,4) → testul pică (0 puncte).
  
-===== 7. Tips & Checklist =====+===== 8. Reguli Dueluri ===== 
 + 
 +**8.1 Format și hartă** 
 +  * Duelurile folosesc aceeași logică de joc, pe harta de referință de mai jos (duel.txt); în pagina de dueluri poți vizualiza animația/​replay-ul fiecărui duel (buton din tabelul de scoruri). 
 + 
 +^ duel.txt ^ 
 +| <​code>​ 
 +ARENA 12 21 200 
 +0 9 
 +0 11 
 +11 10 
 +MAP 
 +0 0 0 0 W 15 0 0 E 0 E 0 E W 0 0 0 0 0 21 22 
 +J 21 0 W 12 21 17 13 E 0 0 0 E 12 12 19 J 0 12 13 12 
 +W 0 0 12 18 0 J 0 F E 0 E 15 17 W 0 13 0 D 14 W 
 +18 0 F 12 21 0 J 12 W 19 22 0 0 W 12 W 0 17 W 15 0 
 +15 21 13 0 0 J 13 17 13 16 17 J 15 0 0 0 15 W 12 18 W 
 +0 F 0 W 14 0 18 W 0 18 0 13 0 W 16 13 0 17 16 18 17 
 +14 0 14 15 0 13 0 14 12 13 0 19 15 15 21 12 0 12 0 13 16 
 +0 20 22 12 22 0 W W 0 0 0 18 0 0 21 J 17 21 19 F 0 
 +15 0 0 0 20 16 0 12 18 F F F 0 16 W J 12 19 J 21 0 
 +13 0 16 16 0 17 W F 0 0 13 0 J 20 21 0 15 15 19 12 20 
 +J 19 19 0 0 T 22 0 13 F E F 18 19 0 0 14 0 0 0 0 
 +W 0 14 0 0 0 20 15 22 F 0 F 12 W 0 0 16 12 0 21 0 
 +END_MAP 
 +STREAM 
 +</​code>​ | 
 + 
 + 
 +  * Perspective jucători: fișierul de mai sus este din perspectiva Player 1 (P1); în pagina de dueluri se poate vedea animația/​replay-ul duelului (buton din pagina de scoruri). 
 +<​code>​ 
 +ARENA 12 21 200 
 +0 9        # start P1 
 +0 11       # start P2 
 +11 10      # FINAL_X FINAL_Y 
 +</​code>​ 
 + 
 +  * Dacă joci ca Player 2 (inversare roluri), liniile de start devin: 
 +   
 +<​code>​ 
 +ARENA 12 21 200 
 +0 11       # start P1 (era P2) 
 +0 9        # start P2 (era P1) 
 +11 10 
 +</​code>​ 
 + 
 +  * Harta rămâne identică; doar liniile de start se schimbă pentru a vedea duelul din perspectiva celuilalt jucător. La fiecare push nou (submit score), se rulează automat dueluri între tema ta și toate celelalte teme eligibile; rezultatele și animațiile (replay) apar în pagina de dueluri (buton din pagina de scoruri). 
 +  * Fiecare duel are 2 jucători (tema ta vs tema altui student), cu tick-uri trimise secvențial. 
 + 
 +**8.2 Ordinea mutărilor și simultaneitate** 
 +  * La fiecare `TICK`, fiecare jucător primește **poziția anterioară** a adversarului (nu poziția rezultată după mutarea curentă). 
 +  * Dacă ambii aleg o destinație și ajung **simultan în aceeași celulă**, resursa se anulează (nu primește nimeni puncte) și celula devine `0`. 
 +  * Dacă celula este `F` (fire), jucătorul care intră pierde instant; celălalt poate continua (dacă are tick-uri). 
 + 
 +**8.3 Finalul pentru un jucător** 
 +  * Când un jucător ajunge la punctul final, **procesul lui se oprește**; pentru restul tick-urilor i se trimite automat `WAIT`. 
 +  * Celălalt jucător continuă să joace până ajunge la final sau se termină tick-urile disponibile. 
 +  * Dacă se termină tick-urile și jucătorul nu e la final, duelul se încheie pentru el cu starea curentă (fără puncte suplimentare). 
 + 
 +**8.4 Scor și afișare** 
 +  * Scorul din duel este suma resurselor colectate (cu multiplicatori) până la încheierea individuală a fiecărui jucător. 
 +  * Clasamentul duelurilor folosește suma totală a acestor scoruri; bonusurile de clasament se acordă separat conform regulilor din secțiunea Punctaj. 
 + 
 +===== 9. Tips & Checklist =====
   * ✅ Asigură-te că output-ul tău nu are spații în plus.   * ✅ Asigură-te că output-ul tău nu are spații în plus.
   * ⛔ Nu amesteca logică de I/O cu logica de simulare – folosește stderr pentru debug.   * ⛔ Nu amesteca logică de I/O cu logica de simulare – folosește stderr pentru debug.
poo-is-ab/tema/2025/03.1765186716.txt.gz · Last modified: 2025/12/08 11:38 by marius.trifu
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