This shows you the differences between two versions of the page.
pa:regulament-proiect-2020 [2020/04/05 01:58] dragos.corlatescu [Etapa 2] |
pa:regulament-proiect-2020 [2020/05/01 14:42] (current) dragos.corlatescu [Etapa 3] |
||
---|---|---|---|
Line 76: | Line 76: | ||
Această etapă va avea **4 săptămâni**. Punctajul alocat acestei etape este de **0.5 puncte**. | Această etapă va avea **4 săptămâni**. Punctajul alocat acestei etape este de **0.5 puncte**. | ||
- | Deadline-ul acestei etape este **14 aprilie 2020, ora 23:55**. | + | Deadline-ul acestei etape este **21 aprilie 2020, ora 23:55**. |
- | ==== Modalitatea de testare și acordare de puncte ==== | ||
+ | ==== Testare ==== | ||
Pentru testare ne vom folosi de engine-ul FairyMax care vine preinstalat cu xboard/winboard. Acesta va fi limitat să vadă doar 2 mutări în față (depth=2), deci nu va juca foarte bine. | Pentru testare ne vom folosi de engine-ul FairyMax care vine preinstalat cu xboard/winboard. Acesta va fi limitat să vadă doar 2 mutări în față (depth=2), deci nu va juca foarte bine. | ||
Comanda care va fi rulată pentru testare va arăta (foarte) asemănător cu comanda de mai jos: | Comanda care va fi rulată pentru testare va arăta (foarte) asemănător cu comanda de mai jos: | ||
- | <note important>xboard -fcp "make run" -firstProtocolVersion 1 -scp "fairymax" -secondInitString "new\nrandom\nsd 2\n" -tc 5 -inc 2 -autoCallFlag true -mg 10 -sgf partide.txt -reuseFirst false</note> | + | <note important>xboard -fcp "make run" -scp "fairymax" -secondInitString "new\nrandom\nsd 2\n" -tc 5 -inc 2 -autoCallFlag true -mg 10 -sgf partide.txt -reuseFirst false</note> |
Explicarea parametrilor: | Explicarea parametrilor: | ||
* **xboard** - aplicația pe care o folosim :-D poate fi atât xboard cât și winboard, dar checkerul va rula cel mai probabil pe linux deci vom folosi xboard. | * **xboard** - aplicația pe care o folosim :-D poate fi atât xboard cât și winboard, dar checkerul va rula cel mai probabil pe linux deci vom folosi xboard. | ||
* **-fcp "make run"** - setează primul engine ca fiind engine-ul vostru. Vă reamintim că "make run" ar trebui doar să vă pornească engine-ul, nu și xboard-ul. | * **-fcp "make run"** - setează primul engine ca fiind engine-ul vostru. Vă reamintim că "make run" ar trebui doar să vă pornească engine-ul, nu și xboard-ul. | ||
- | * **-firstProtocolVersion 1** - setează xboard-ul să trimită mutările engine-ului vostru în formatul de coordonate (ex: g1f3). Default este "2", protocolul în care se trimite piesa și poziția unde aceasta va ajunge (ex: Nf3). //Observație:// Dacă ați implementat protocolul 2 spuneți-ne asta în readme pentru a scoate/modifica acest parametru când rulăm noi. | ||
* **-scp "fairymax"** - setează al doilea engine ca fiind engine-ul FairyMax. | * **-scp "fairymax"** - setează al doilea engine ca fiind engine-ul FairyMax. | ||
* **-secondInitString "new\nrandom\nsd 2\n"** - string de inițializare pentru FairyMax care îi limitează adâncimea de căutare (depth) la 2. | * **-secondInitString "new\nrandom\nsd 2\n"** - string de inițializare pentru FairyMax care îi limitează adâncimea de căutare (depth) la 2. | ||
Line 98: | Line 97: | ||
* **-reuseFirst false** - acest parametru îi specifică lui xboard să reîncarce engine-ul vostru după fiecare partidă. Dacă nu este prezent se va da "new game". Puteți să-l vedeți ca pe o plasă de siguranță: dacă cumva engine-ul vostru se "strică" în timpul unei partide, el se va reseta la următoarea deci teoretic eroarea nu se va propaga. | * **-reuseFirst false** - acest parametru îi specifică lui xboard să reîncarce engine-ul vostru după fiecare partidă. Dacă nu este prezent se va da "new game". Puteți să-l vedeți ca pe o plasă de siguranță: dacă cumva engine-ul vostru se "strică" în timpul unei partide, el se va reseta la următoarea deci teoretic eroarea nu se va propaga. | ||
- | Mai multe detalii pentru configurarea xboard-ului din linie de comandă puteți găsi aici [[https://www.gnu.org/software/xboard/manual/xboard.html#|documentație xboard]]. | + | <note important>Pentru fi siguri că primiți de la xboard/winboard mutările în formatul de coordonate (g1f3, care mută piesa de la g1 la f3) în momentul în care primiți "protover" de la xboard răspundeți cu "feature san=0". Dacă ați implementat mutările in formatul "piesă la câmp" (ex: Nf3, care mută calul la f3) atunci nu mai este nevoie să trimiteți acest "feature". |
+ | "feature"-ul puteți să-l trimiteți pe tot odată: foarte mulți dintre voi ați implementat în etapa 1 să răspundeți cu "feature sigterm=0". Acum puteți trimite "feature sigterm=0 san=0"</note> | ||
+ | |||
+ | Mai multe detalii pentru configurarea xboard-ului din linie de comandă puteți găsi aici [[https://www.gnu.org/software/xboard/manual/xboard.html#|documentație xboard]]. | ||
- | <br> | + | ==== Punctare ==== |
Punctajul de **0.5 puncte** se va acorda în felul următor: | Punctajul de **0.5 puncte** se va acorda în felul următor: | ||
* **0.2 puncte** implementarea corectă a tuturor detaliilor ce țin de jocul de șah | * **0.2 puncte** implementarea corectă a tuturor detaliilor ce țin de jocul de șah | ||
Line 111: | Line 113: | ||
Punctele se vor acorda după următoarea formulă: | Punctele se vor acorda după următoarea formulă: | ||
- | ''punctaj_etapă = 0.2 * (număr_de_partide_terminate_corect / 10) + | + | <code> |
+ | punctaj_etapă = 0.2 * (număr_de_partide_terminate_corect / 10) + | ||
0.2 * (număr_de_partide_terminate_după_mutarea_20 / 10) + | 0.2 * (număr_de_partide_terminate_după_mutarea_20 / 10) + | ||
- | min(0.1, 0.1 * (număr_de_puncte_din_meci / 5))'' | + | min(0.1, 0.1 * (număr_de_puncte_din_meci / 5))</code> |
| | ||
Clarificări: | Clarificări: | ||
Line 128: | Line 131: | ||
Deadline-ul acestei etape este **19 mai 2020, ora 23:55**. | Deadline-ul acestei etape este **19 mai 2020, ora 23:55**. | ||
+ | |||
+ | ==== Testare ==== | ||
+ | Pentru testare ne vom folosi de engine-ul FairyMax care vine preinstalat cu xboard/winboard. În funcție de caz, acesta va fi limitat ori la depth=3 ori la depth=4. Acest lucru îl va face să joace mai bine decât la etapa precedentă. | ||
+ | |||
+ | Comenzile care vor fi rulate pentru testare vor arăta (foarte) asemănător cu comenzile de mai jos. Diferența constantă în string-ul de inițializare pentru FairyMax (depth 3 vs depth 4): | ||
+ | <note important>xboard -fcp "make run" -scp "fairymax" -secondInitString "new\nrandom\nsd 3\n" -tc 5 -inc 2 -autoCallFlag true -mg 4 -sgf partide.txt -reuseFirst false</note> | ||
+ | <note important>xboard -fcp "make run" -scp "fairymax" -secondInitString "new\nrandom\nsd 4\n" -tc 5 -inc 2 -autoCallFlag true -mg 4 -sgf partide.txt -reuseFirst false</note> | ||
+ | |||
+ | Pentru detalii legate de parametrii comenzilor analizați instrucțiunile de la etapa precedentă. | ||
+ | |||
+ | |||
+ | ==== Punctare ==== | ||
+ | Punctajul de **0.5 puncte** se va acorda în felul următor: | ||
+ | * **0.35 puncte** obținerea a 2 puncte (orice combinație de remize + victorii) din 4 partide vs FairyMax cu depth-ul 3 | ||
+ | * **0.15 puncte** obținerea a 2 puncte (orice combinație de remize + victorii) din 4 partide vs FairyMax cu depth-ul 4 | ||
+ | |||
+ | |||
+ | Punctele se vor acorda după următoarea formulă: | ||
+ | |||
+ | <code> | ||
+ | punctaj_etapă = min(0.35, 0.35 * (număr_puncte_din_meci_vs_fm3 / 2)) + | ||
+ | min(0.15, 0.15 * (număr_puncte_din_meci_vs_fm4 / 2))</code> | ||
+ | |||
===== Etapa 4 ===== | ===== Etapa 4 ===== | ||