Differences

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

Link to this comparison view

sd-ca:tem123a2 [2017/03/12 22:31]
emil.racec [Date furnizate la inceputul campionatului Laser Tag]
sd-ca:tem123a2 [2017/03/22 11:01] (current)
emil.racec [Punctaj TODO]
Line 14: Line 14:
   * isi imbunatateasca abilitatile in utilizarea limbajului C++   * isi imbunatateasca abilitatile in utilizarea limbajului C++
   * sa imparta o problema complexa in sub-componente pe care sa le rezolve individula   * sa imparta o problema complexa in sub-componente pe care sa le rezolve individula
 +  * sa utilizeze structura de date hashtable pentru maparea obiectelor jucator cu numele jucatorilor
 +  * sa sorteze o colectie de date dupa criterii multiple (valoare si respectiv alfabetic)
   * sa contruiasca si sa utilizeze grafuri pentru o implementare eficienta a problemei   * sa contruiasca si sa utilizeze grafuri pentru o implementare eficienta a problemei
   * sa elaboreze o rezolvare complexa, la o cerinta inspirata din realitate   * sa elaboreze o rezolvare complexa, la o cerinta inspirata din realitate
Line 94: Line 96:
  
 ====Winning chance==== ====Winning chance====
-Calcularea probabilitatii de a castiga ​repriza este necesara in conditiile in care aceasta nu se poate termina, ca urmare a expirari timpului alocat campionatului sau o defectiune majora a sistemului. Formula are la baza statisticile acumulate despre jucatori si starea jocului curent (i.e. jucatorii ramasi in viata la acel moment):+Calcularea probabilitatii de a castiga ​ultima ​repriza este necesara in conditiile in care aceasta nu se poate termina, ca urmare a expirari timpului alocat campionatului sau o defectiune majora a sistemului. Formula are la baza statisticile acumulate despre jucatori si starea jocului curent (i.e. jucatorii ramasi in viata la acel moment):
  
 ''​winning_chance = sum(alive[i] * (best_shooter[i]/​max(best_shooter) + (top_explorer[i] / max(top_explorer)))),​ i=0:​n-1''​ ''​winning_chance = sum(alive[i] * (best_shooter[i]/​max(best_shooter) + (top_explorer[i] / max(top_explorer)))),​ i=0:​n-1''​
  
 unde: unde:
-  * ''​alive[i]'':​ ''​1''​ – daca jucatorul este in viata la incheierea ​reprizei, ''​0''​ – altfel+  * ''​alive[i]'':​ ''​1''​ – daca jucatorul este in viata la incheierea ​ultimei reprize, ''​0''​ – altfel
   * ''​best_shooter[i]'':​ scorul general best_shooter al jucatorului ''​i''​   * ''​best_shooter[i]'':​ scorul general best_shooter al jucatorului ''​i''​
   * ''​top_explorer[i]'':​ scorul general top_explorer al jucatorului ''​i''​   * ''​top_explorer[i]'':​ scorul general top_explorer al jucatorului ''​i''​
  
-Echipa cu valoarea ''​winning_chance''​ mai mare va fi declarata echipa castigatoare.+Echipa cu valoarea ''​winning_chance''​ mai mare va fi declarata echipa castigatoare ​a ultimei reprize.
  
  
Line 207: Line 209:
 </​code>​ </​code>​
  
-**Obs:** Valorile ''​winning_chance'',​ truncheate la 3 zecimale, pentru exemplul dat  sunt: ''​2.186''​ si ''​2.897''​+**Obs:** Valorile ''​winning_chance'',​ truncheate la 3 zecimale, pentru exemplul dat  sunt: ''​2.186''​ si respectiv ​''​2.897''​
  
 ===== Indicii de implementare ===== ===== Indicii de implementare =====
Line 213: Line 215:
    * unul pentru simularea miscarii luptatorilor in teren si calcularea statisticilor aferente    * unul pentru simularea miscarii luptatorilor in teren si calcularea statisticilor aferente
    * si unul pentru simularea schimbului de focuri si calcularea statisticilor aferente    * si unul pentru simularea schimbului de focuri si calcularea statisticilor aferente
-===== Teste publice ===== 
-[[http://​ocw.cs.pub.ro/​courses/​_media/​sd-ca/​teme/​sd2015_tema3_checker_v2.zip_TODO|TODOChecker]] 
  
 +Se recomanda utilizarea unui hashtable pentru maparea directa a numelor jucatorilor cu obiectele corespunzatoare (sau cu indexul acestora).
 +===== Checker + teste publice =====
 +
 +<​hidden>​
 +Puteți descărca checker-ul, cu testele publice aferente, de aici: {{:​sd-ca:​teme:​2017_tema2_lasertag_checker_v1.3.zip|Checker}}
 +</​hidden>​
 ===== Reguli pentru trimitere ===== ===== Reguli pentru trimitere =====
  
Line 226: Line 232:
   * fisier **README** care să conțină detalii despre implementarea temei   * fisier **README** care să conțină detalii despre implementarea temei
  
-===== Punctaj ​TODO =====+===== Punctaj ===== 
 + 
 +  * 80 puncte obținute pe testele de pe vmchecker. Condiții pentru obținerea punctajului total: 
 +       * fără memleak-uri 
 +       * fără erori de valgrind 
 +  * 20 puncte: README 
 +  * **Bonus 20% din punctajul obținut** pentru coding style 
 +       * spre exemplu: cu 60p din 100p și coding style perfect, obțineți 60*1.2 = 72p 
 + 
 +<note warning>​**Nu copiați!** Toate soluțiile vor fi verificate folosind o unealtă de detectare a plagiatului. În cazul detectării unui astfel de caz, atât plagiatorul cât și autorul original (nu contează cine care e) vor primi punctaj 0 pe **toate temele**!
  
-  * 90 puncte obținute pe testele de pe vmchecker +De aceea, vă sfătuim să nu vă lăsați rezolvări ale temelor pe calculatoare partajate ​(la laborator etc), pe mail/liste de discuții/​grupuri etc.</​note> ​
-  * 10 puncte: README + alte eventuale penalizări +
-  * **Bonus 10 puncte** pentru soluțiile ce nu au memory leak-uri. +
-  * TOTAL: 100 puncte ​(+10 bonus)+
  
 ===== FAQ TODO ===== ===== FAQ TODO =====
  
-**Q:** Se poate folosi ​STL?+**Q:** Se poate folosi ?
  
-**A:** Se poate folosi clasa string din STL. Folosirea oricărei alte clase din STL **nu este permisă**+**A:** Se poate folosi clasa 
  
  
sd-ca/tem123a2.1489350663.txt.gz · Last modified: 2017/03/12 22:31 by emil.racec
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