Differences

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

Link to this comparison view

programare:teme_2020:tema2_2020_cbd [2020/11/30 18:42]
laurentiu.stefan97
programare:teme_2020:tema2_2020_cbd [2020/12/14 11:46] (current)
george.muraru [Tema 2. A Game of Scrabble]
Line 8: Line 8:
  
   * Data publicării:​ **30.11.2020**   * Data publicării:​ **30.11.2020**
-  * Deadline soft: **14.12.2020** +  * Deadline soft: **20.12.2020** 
-  * Deadline hard: **14.12.2020**+  * Deadline hard: **20.12.2020**
  
 /* /*
 <note important>​ <note important>​
-****Atentie!** deadline-ul soft coincide cu cel hard! Prin urmare, nu se vor mai accepta submisii dupa data de 13.01.2020!**+****Atentie!** deadline-ul soft coincide cu cel hard! Prin urmare, nu se vor mai accepta submisii dupa data de 20.12.2020!**
 </​note>​ </​note>​
 */ */
  
 **Actualizări:​** **Actualizări:​**
-  * **13.12.2019**: modificat arhiva astfel incat tema sa poata fi compilata si pe OSX (MacOS);+  * **30.11.2020**: modificat arhiva astfel incat tema sa poata fi compilata si pe OSX (MacOS); 
 +  * **1.12.2020**:​ reparat testele pt task-urile 5 si bonus; 
 +  * **7.12.2020**:​ reparat testele pt task-urile 5 si bonus v2; 
 +  * **14.12.2020**:​ adaugat flag "​-lm"​ in Makefile
  
  
Line 45: Line 48:
   * 0 - niciun bonus   * 0 - niciun bonus
   * 1 - punctajul se dubleaza daca pe patratica respectiva se afla o litera apartinand unui cuvant care are substringul “XX” in compozitie, se da substringul la fiecare joc   * 1 - punctajul se dubleaza daca pe patratica respectiva se afla o litera apartinand unui cuvant care are substringul “XX” in compozitie, se da substringul la fiecare joc
-  * 2 - punctajul se tripleaza daca pe patratica respectiva se afla o litera apartinand unui cuvant care se termina cu substringul “XX”, se da substringul la fiecare joc+  * 2 - punctajul se tripleaza daca pe patratica respectiva se afla o litera apartinand unui cuvant care se termina cu substringul “YY”, se da substringul la fiecare joc
  
 Modul in care se calculeaza punctajul va fi detaliat ulterior in cerintele temei. Matricea arata in felul urmator: Modul in care se calculeaza punctajul va fi detaliat ulterior in cerintele temei. Matricea arata in felul urmator:
Line 60: Line 63:
 Veți avea de rezolvat 6 cerințe obligatorii și o cerință bonus. Veți avea de rezolvat 6 cerințe obligatorii și o cerință bonus.
  
-<note warning> **Atentie!** Pentru citirea input-ului de la tastatura nu aveti voie sa folositi **scanf**. </​note>​+<note warning> **Atentie!** Pentru citirea input-ului de la tastatura nu aveti voie sa folositi **scanf**. ​Nici **fscanf**! :)</​note>​
 ==== Cerinta 0: (2 Puncte) - 1 test ====  ==== Cerinta 0: (2 Puncte) - 1 test ==== 
 Pentru rezolvarea task-urilor veti avea nevoie de tabla de joc. Tabla de bonus este data deja in fisierul header, dar tabla de joc va trebui sa o declarati si sa o initializati voi. Pentru rezolvarea task-urilor veti avea nevoie de tabla de joc. Tabla de bonus este data deja in fisierul header, dar tabla de joc va trebui sa o declarati si sa o initializati voi.
Line 217: Line 220:
   * Face parte din lista de cuvinte (vectorul words din fisierul scrabble.h)   * Face parte din lista de cuvinte (vectorul words din fisierul scrabble.h)
   * Cuvantul nu e deja pus pe tabla de niciunul dintre jucatori   * Cuvantul nu e deja pus pe tabla de niciunul dintre jucatori
-  * Prima litera din cuvant se afla deja pe tabla si cuvantul poate fi pus in continuarea literei respective, fie pe orizontala, fie pe verticala. (Pentru a verifica acest lucru, se cauta pe tabla prima litera din cuvant de la coltul stanga sus, linie cu linie, pana la coltul dreapta jos al tablei de joc).+  * Prima litera din cuvant se afla deja pe tabla si cuvantul poate fi pus in continuarea literei respective, fie pe orizontala, fie pe verticala.** (Pentru a verifica acest lucru, se cauta pe tabla prima litera din cuvant de la coltul stanga sus, linie cu linie, pana la coltul dreapta jos al tablei de joc.).**
   * Cuvantul nu iese din marginile tablei de joc si nu se suprapune cu alte cuvinte (inafara de prima litera)   * Cuvantul nu iese din marginile tablei de joc si nu se suprapune cu alte cuvinte (inafara de prima litera)
  
Line 254: Line 257:
  
 ==== Cerinta 5: (30 Puncte) - 10 teste ==== ==== Cerinta 5: (30 Puncte) - 10 teste ====
-Pentru aceasta cerinta va trebui sa faceti acelasi lucru ca si la task-ul precedent, dar de aceasta data veti alege cuvantul din lista de cuvinte care va aduce castigul (sau remiza) pentru Player 2. La calcularea scorurilor se va tine cont de bonus. ​ Cuvantul selectat trebuie sa incapa pe tabla de joc si sa nu se repete. Daca gasiti un astfel de cuvant atunci la output se va afisa tabla de joc care va contine si cuvantul respectiv, in caz contrar se va afisa mesajul “FAIL!”.+Pentru aceasta cerinta va trebui sa faceti acelasi lucru ca si la task-ul precedent, dar de aceasta data veti alege cuvantul din lista de cuvinte care va aduce castigul (sau remiza) pentru Player 2. La calcularea scorurilor se va tine cont de bonus. ​ Cuvantul selectat trebuie sa incapa pe tabla de joc si sa nu se repete. Daca gasiti un astfel de cuvant atunci la output se va afisa tabla de joc care va contine si cuvantul respectiv, in caz contrar se va afisa mesajul “Fail!”.
  
 Pasi in rezolvarea task-ului: Pasi in rezolvarea task-ului:
Line 261: Line 264:
   * Se cauta cuvantul optim pe care Player 2 poate sa il joace (acel cuvant care adunat la scorul pe care Player 2 il are deja va produce in scor mai mare *sau* egal cu scorul Player-ului 1)   * Se cauta cuvantul optim pe care Player 2 poate sa il joace (acel cuvant care adunat la scorul pe care Player 2 il are deja va produce in scor mai mare *sau* egal cu scorul Player-ului 1)
   * Daca se gaseste cuvantul va fi afisata tabla ce va contine noul cuvantul.   * Daca se gaseste cuvantul va fi afisata tabla ce va contine noul cuvantul.
-  * Daca nu se gaseste cuvantul va fi afisat mesajul “FAIL!”.+  * Daca nu se gaseste cuvantul va fi afisat mesajul “Fail!”.
  
 Un cuvant este optim pentru Player 2 daca: Un cuvant este optim pentru Player 2 daca:
   * Face parte din lista de cuvinte (vectorul words din fisierul scrabble.h)   * Face parte din lista de cuvinte (vectorul words din fisierul scrabble.h)
   * Cuvantul nu e deja pus pe tabla de niciunul dintre jucatori   * Cuvantul nu e deja pus pe tabla de niciunul dintre jucatori
-  * Prima litera din cuvant se afla deja pe tabla si cuvantul poate fi pus in continuarea literei respective, fie pe orizontala, fie pe verticala. (Pentru a verifica acest lucru, se cauta pe tabla prima litera din cuvant de la coltul stanga sus, linie cu linie, pana la coltul dreapta jos  al tablei de joc).+  * Prima litera din cuvant se afla deja pe tabla si cuvantul poate fi pus in continuarea literei respective, fie pe orizontala, fie pe verticala. ​**(Pentru a verifica acest lucru, se cauta pe tabla prima litera din cuvant de la coltul stanga sus, linie cu linie, pana la coltul dreapta jos al tablei de joc. Daca un cuvant poate fi pus in mai multe locuri, se alege pozitia cu linia cea mai mic, daca liniile sunt egale, se alege cea care are cea mai mica coloana. Daca un cuvant poate fi pus si pe orizontala si pe verticala, cuvantul va fi pus pe orizontala.).**
   * Cuvantul nu iese din marginile tablei de joc si nu se suprapune cu alte cuvinte (inafara de prima litera)   * Cuvantul nu iese din marginile tablei de joc si nu se suprapune cu alte cuvinte (inafara de prima litera)
   * Produce **cel mai mare scor posibil** incluzand bonusurile   * Produce **cel mai mare scor posibil** incluzand bonusurile
 +
 +<note important>​Spre deosebire de task-ul 4, cuvantul optim nu trebuie sa fie neaparat primul cuvant gasit in lista.</​note>​
  
 Inputul va fi de forma urmatoare: Inputul va fi de forma urmatoare:
Line 328: Line 333:
   * Face parte din lista de cuvinte (vectorul words din fisierul scrabble.h)   * Face parte din lista de cuvinte (vectorul words din fisierul scrabble.h)
   * Cuvantul nu e deja pus pe tabla de niciunul dintre jucatori   * Cuvantul nu e deja pus pe tabla de niciunul dintre jucatori
-  * Prima litera din cuvant se afla deja pe tabla si cuvantul poate fi pus in continuarea literei respective, fie pe orizontala, fie pe verticala. (Pentru a verifica acest lucru, se cauta pe tabla prima litera din cuvant de la coltul stanga sus, linie cu linie, pana la coltul dreapta jos al tablei de joc).+  * Prima litera din cuvant se afla deja pe tabla si cuvantul poate fi pus in continuarea literei respective, fie pe orizontala, fie pe verticala. ​**(Pentru a verifica acest lucru, se cauta pe tabla prima litera din cuvant de la coltul stanga sus, linie cu linie, pana la coltul dreapta jos al tablei de joc. Daca un cuvant poate fi pus in mai multe locuri, se alege pozitia cu linia cea mai mic, daca liniile sunt egale, se alege cea care are cea mai mica coloana. Daca un cuvant poate fi pus si pe orizontala si pe verticala, cuvantul va fi pus pe orizontala.).**
   * Cuvantul nu iese din marginile tablei de joc si nu se suprapune cu alte cuvinte (inafara de prima litera)   * Cuvantul nu iese din marginile tablei de joc si nu se suprapune cu alte cuvinte (inafara de prima litera)
   * Produce cel mai mare scor posibil incluzand bonusurile   * Produce cel mai mare scor posibil incluzand bonusurile
 +
 +<note important>​Spre deosebire de task-ul 4, cuvantul optim nu trebuie sa fie neaparat primul cuvant gasit in lista.</​note>​
  
 Inputul va fi de forma urmatoare: Inputul va fi de forma urmatoare:
Line 351: Line 358:
 Tema va fi trimisa folosind [[https://​v2.vmchecker.grid.pub.ro/​homepage/​|v2.vmchecker]],​ cursul **Programarea Calculatoarelor**,​ tema **A Game of Scrabble**. Tema va fi trimisa folosind [[https://​v2.vmchecker.grid.pub.ro/​homepage/​|v2.vmchecker]],​ cursul **Programarea Calculatoarelor**,​ tema **A Game of Scrabble**.
  
-Găsiți arhiva cu checker-ul si makefile-ul {{:​programare:​teme_2020:​pc_tema_2.zip|aici}}.+Găsiți arhiva cu checker-ul si makefile-ul {{:​programare:​teme_2020:​pc_tema_21.zip|aici}}.
  
 <note warning>​Fisierul .c se va numi scrabble.c</​note>​ <note warning>​Fisierul .c se va numi scrabble.c</​note>​
programare/teme_2020/tema2_2020_cbd.1606754530.txt.gz · Last modified: 2020/11/30 18:42 by laurentiu.stefan97
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