Differences

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

Link to this comparison view

pa:regulament-proiect-2024 [2024/04/03 17:41]
traian.enache [Etapa 1]
pa:regulament-proiect-2024 [2024/05/11 17:30] (current)
traian.enache [Etapa 3]
Line 8: Line 8:
  
 ====== Regulament Proiect 2024 ====== ====== Regulament Proiect 2024 ======
 +
 +**Ultima modificare: 11 Aprilie 2024**: publicare etapa 3
  
 În acest an vă propunem realizarea unui program care să joace cât mai bine jocul [[https://​pa-proiect-2024.web.app/​|Halite]]. ​ În acest an vă propunem realizarea unui program care să joace cât mai bine jocul [[https://​pa-proiect-2024.web.app/​|Halite]]. ​
Line 16: Line 18:
  
 Proiectul va cuprinde 5 etape, după cum este prezentat în continuare. Fiecare etapă presupune dezvoltarea unui bot care va juca Halite din ce în ce mai inteligent, iar ultima etapă reprezintă un concurs la nivel de serie, iar apoi la nivel de an pentru a stabili marele câștigător al proiectului de PA din anul 2024. Fiecare echipă poate să își schimbe complet strategia de joc între etape dacă membrii săi consideră acest lucru oportun. Proiectul va cuprinde 5 etape, după cum este prezentat în continuare. Fiecare etapă presupune dezvoltarea unui bot care va juca Halite din ce în ce mai inteligent, iar ultima etapă reprezintă un concurs la nivel de serie, iar apoi la nivel de an pentru a stabili marele câștigător al proiectului de PA din anul 2024. Fiecare echipă poate să își schimbe complet strategia de joc între etape dacă membrii săi consideră acest lucru oportun.
 +
 +Pentru replays, folositi acest [[https://​halite-tournament.fly.dev/​visualizer/​ |link]].
  
 ===== Etapa 0 ===== ===== Etapa 0 =====
Line 87: Line 91:
 Punctajul alocat acestei etape este de **0.3 puncte**. Punctajul alocat acestei etape este de **0.3 puncte**.
  
-Deadline-ul acestei etape este **marți, ​30 Aprilie ​2024, ora 23:55**.+Deadline-ul acestei etape este **marți, ​07 Mai 2024, ora 23:55**.
  
 ===== Etapa 2 ===== ===== Etapa 2 =====
Line 110: Line 114:
 **PRO-TIP**:​ Pentru a rula toate meciurile din etapa curentă, utilizați scriptul de testare automat '​run.py'​. **PRO-TIP**:​ Pentru a rula toate meciurile din etapa curentă, utilizați scriptul de testare automat '​run.py'​.
  
-Exemplu: python3 run.py --cmd "​**run_bot_cmd**"​ --round 2 (eventual și --clean)+Exemplu: python3 run.py -****-cmd "​**run_bot_cmd**"​ -****-round 2 (eventual și -****-clean)
 </​note>​ </​note>​
  
 Punctajul alocat acestei etape este de **0.3 puncte**. Punctajul alocat acestei etape este de **0.3 puncte**.
  
-Deadline-ul acestei etape este **marți, ​30 Aprilie ​2024, ora 23:55**.+Deadline-ul acestei etape este **marți, ​07 Mai 2024, ora 23:55**. 
 + 
 + 
 +===== Etapa 3 ===== 
 + 
 +În cea de-a treia etapă, botul vostru se va lupta cu boții puși la dispoziție de echipa PA: DBotv4 și starkbot, în diverse formate, precum lupte 1v3, 1v1v1v1, etc. Botul vostru va fi întotdeauna în colțul din stânga sus (player1). 
 + 
 +În această etapă, există 5 runde, fiecare cu adversari determinați,​ dimensiunea tablei aleasă dintr-un set specificat, iar seed-urile meciurilor vor fi aleatoare. Scopul vostru este sa reușiți sa bateți acești boți în mod constant. 
 + 
 +Punctajul va fi împărțit în cinci runde în felul următor: 
 + 
 +| Procent Punctaj | Dimensiuni posibile hărți (lungime/​lățime) | Boți | Format | 
 +| 25% | 30x30, 35x35, 40x40 | 3x DBotv4 | 1v3 | 
 +| 25% | 25x25, 30x30, 40x40 | 1x starkbot | 1v1 |  
 +| 15% | 25x25, 30x30, 40x40, 45x45 | 1x starkbot, 2x DBotv4 | 1v2v1 | 
 +| 15% | 30x30, 35x35, 40x40 | 2x starkbot, 1x DBotv4 | 1v1v1v1 | 
 +| 20% | 35x35, 40x40 | 3x starkbot | 1v1v1v1 | 
 + 
 +Pentru fiecare rundă, se generează 10 meciuri aleatoare și se aleg cele mai bune 8 rezultate. 
 + 
 +Scorul acordat fiecărui meci este calculat în felul următor: 
 +  * Dacă botul vostru câștigă, punctajul primit va fi de 100%. 
 +  * Dacă botul vostru supraviețuiește 200 de ture sau mai mult, punctajul primit va fi de 100%. 
 +  * Dacă botul vostru supraviețuiește 100 de ture sau mai puțin, punctajul primit va fi de 0%. 
 +  * Dacă botul vostru supraviețuiește între 100 și 200 de ture, punctajul primit va fi direct proporțional cu pătratul numărului de ture supraviețuite peste pragul de 100. Spre exemplu, dacă botul trăiește 125 de ture, va primi 6.25% (1/16), pentru 150 de ture va primi 25% (4/16), pentru 175 de ture va primi 56.25% (9/16). 
 + 
 +<​spoiler>​ 
 +Formula utilizată pentru a calcula scorul unui meci este: <​nowiki>​((max(100,​ min(ture, 200)) - 100) / 100)^2</​nowiki>​. Pentru un meci câștigat, `ture` se va înlocui cu 200. Rezultatul acestei formule este o fracție între 0 și 1. 
 +</​spoiler>​ 
 + 
 + 
 +Scorul unei runde este dat de media celor mai mari 8 punctaje din cele 10 meciuri rulate pentru respectiva rundă. Acesta va fi înmulțit cu ponderea asociată rundei (vezi prima coloană din tabel) pentru a calcula punctajul pentru această etapă. 
 + 
 +Comanda ce va fi rulată pentru fiecare meci este: 
 + 
 +./halite -d “**dimx** **dimy**” -s **random_seed** “**run_cmd**” “player2” “player3” “player4”. 
 + 
 +Ca parametru "​-****-cmd"​ al scriptului "​run.py",​ veți da comanda "make -s run". Spre exemplu: python3 run.py -****-cmd "make -s run" -****-round 3 
 + 
 +Punctajul alocat acestei etape este de **0.8 puncte**. 
 + 
 +Deadline-ul acestei etape este **duminică,​ 26 Mai 2024, ora 23:55**.
  
 +<note important>​Pentru această etapă, veți recompila motorul Halite. În acest scop, ștergeți executabilul,​ rulați 'make build' în directorul '​environment'​ și mutați executabilul un director mai sus (în directorul ce conține script-ul run.py).</​note>​
  
 ====== FAQ ======= ====== FAQ =======
pa/regulament-proiect-2024.1712155268.txt.gz · Last modified: 2024/04/03 17:41 by traian.enache
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