Differences

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

Link to this comparison view

programare:teme_2018:tema2_2018_ca [2018/11/05 12:44]
darius.neatu [Instrucţiuni de utilizare]
programare:teme_2018:tema2_2018_ca [2018/11/18 14:56] (current)
darius.neatu
Line 4: Line 4:
   * [[darius.neatu@cti.pub.ro|Darius Neațu]]   * [[darius.neatu@cti.pub.ro|Darius Neațu]]
  
-**Deadline:​** **23.11.2018 23:55**+**Deadline:​** **26.11.2018 23:55**
  
  
  
 ======Actualizări====== ======Actualizări======
 +   * **06.11.2018 23:35** - Actualizare arhivă [[https://​ocw.cs.pub.ro/​courses/​_media/​programare/​teme_2018/​check_gigel.zip|check_gigel.zip]]. Vă rugăm să descarcați din nou arhiva. În unele fișiere caracterul apostrof('​) era înlocuit cu altceva. 
 +   * **06.11.2018 22:33** - Adăugare precizări suplimentare la task 2 despre modul de câștigare a macroboard-ului.
    * **06.11.2018 00:00** - **NU** există actualizări.    * **06.11.2018 00:00** - **NU** există actualizări.
        
Line 61: Line 62:
  
  
-Exemplu - n = 3, m = 8. Dacă șirul de mutări este următorul, atunci se obține board-ul din figura alăturată.+Exemplu - n = 3, m = 9. Dacă șirul de mutări este următorul, atunci se obține board-ul din figura alăturată.
 {{ :​programare:​teme_2018:​poza2_tabla_joc.png|}} {{ :​programare:​teme_2018:​poza2_tabla_joc.png|}}
  
Line 155: Line 156:
  
  
-După cum am spus anterior, în fiecare miniboard se va desfășura un joc de X și 0 de dimensiune n x n. Într-un miniboard câștigă jucătorul care are **o linie**, **o coloană** sau **o diagonală** (cea principală sau cea secundară),​ plină cu X (pentru jucătorul cu X) sau cu 0 (pentru jucătorul cu 0). +După cum am spus anterior, în fiecare miniboard se va desfășura un joc de X și 0 de dimensiune n x n. Într-un miniboard câștigă jucătorul care are cel puțin ​**o linie**, **o coloană** sau **o diagonală** (cea principală sau cea secundară),​ plină cu X (pentru jucătorul cu X) sau cu 0 (pentru jucătorul cu 0).  
 + 
 +<note warning>​ 
 +Menționăm că un miniboard este câștigat de **primul** jucător care face o linie, o coloană sau o diagonală în acest miniboard. Se poate pune în continuare mutări într-un miniboard câștigat, dar acesta rămâne în continuare a celui care l-a câștigat inițial. 
 +</​note>​
  
  
Line 162: Line 167:
 În caz de remiză într-un miniboard, în macroboard se va pune caracterul **-** (liniuță). Considerăm remiză orice caz în care **nu** există **un** câștigător. În caz de remiză într-un miniboard, în macroboard se va pune caracterul **-** (liniuță). Considerăm remiză orice caz în care **nu** există **un** câștigător.
  
-După completarea macroboard-ului,​ care are tot dimensiune $n$ x $n$, aplicăm ​aceeași ​regulă ​de mai sus: jocul este câștigat de jucătorul care are o linie, o coloană sau o diagonală (cea principală sau secundară) plină cu caracterul său în macroboard.+După completarea macroboard-ului,​ care are tot dimensiune $n$ x $n$, aplicăm ​următoarea ​regulă: jocul este câștigat de jucătorul care are cel puțin ​o linie, o coloană sau o diagonală (cea principală sau secundară) plină cu caracterul său în macroboard ​la **finalul jocului**.
  
- +<​note ​warning
-<​note>​ +Menționăm că jocul/​macroboard-ul **poate** fi câștigat de **un singur** ​jucător. ​ ​Acesta se stabilește la **finalul** execuției celor m mutări!
-Menționăm că un miniboard este câștigat de primul ​jucător ​care face o linie, o coloană sau o diagonală în acest miniboardSe poate pune în continuare ​mutări ​într-un miniboard câștigat, dar acesta rămâne în continuare a celui care l-a câștigat inițial.+
 </​note>​ </​note>​
 +
  
 Pentru a rezolva task 2 se cer următoarele:​ Pentru a rezolva task 2 se cer următoarele:​
   * 1. Să se afișeze **configurația finală a macroboard-ului** după executarea celor m mutări de la task 1.   * 1. Să se afișeze **configurația finală a macroboard-ului** după executarea celor m mutări de la task 1.
-  * 2. Să se determine **cine a câștigat** și să se afișeze pe ecran unul dintre mesajele+  * 2. Să se determine **cine a câștigat** și să se afișeze pe ecran **unul** dintre mesajele
        * “X won”        * “X won”
        * “0 won”        * “0 won”
-       * “Draw again! Lets play darts!”+       * “Draw again! Let's play darts!”
  
 <spoiler 00-example.in (Tasks 1 + 2)> <spoiler 00-example.in (Tasks 1 + 2)>
Line 194: Line 199:
 NOT AN EMPTY CELL NOT AN EMPTY CELL
 X0- X0-
---- +------ 
---- +Draw again! Let's play darts!
-Draw again! Lets play darts!+
 </​code>​ \\ \\ | </​code>​ \\ \\ |
  
Line 274: Line 278:
 NOT AN EMPTY CELL NOT AN EMPTY CELL
 X0- X0-
---- +------ 
---- +Draw again! Let's play darts!
-Draw again! Lets play darts!+
 X 0.2500000000 X 0.2500000000
 0 0.3333333333 0 0.3333333333
Line 369: Line 372:
  
 <note warning> <note warning>
-Toate aceste exemple se găsesc în arhiva de testare  ​[[https://​ocw.cs.pub.ro/​courses/​_media/​programare/​teme2018/​check_gigel.zip|check_gigel.zip]].+Toate aceste exemple se găsesc în arhiva de testare ​ check_gigel.zip.
  
 Pentru fiecare exemplu se găsesc: Pentru fiecare exemplu se găsesc:
Line 397: Line 400:
 NOT AN EMPTY CELL NOT AN EMPTY CELL
 X0- X0-
---- +------ 
---- +Draw again! Let's play darts!
-Draw again! Lets play darts!+
 X 0.2500000000 X 0.2500000000
 0 0.3333333333 0 0.3333333333
Line 462: Line 464:
 ---- ----
 ---- ----
----- +--- 
-Draw again! Lets play darts!+Draw again! Let's play darts!
 X 0.2500000000 X 0.2500000000
 0 0.0000000000 0 0.0000000000
Line 551: Line 553:
   * Dacă apar erori şi testarea eşuează, puteţi să vă uitaţi în directorul ''​tests''​ şi să comparaţi rezultatele voastre (fişierele ''​tests/​out/​*.out''​),​ cu cele ale implementării de referinţă (fişierele ''​tests/​ref/​*.ref''​).   * Dacă apar erori şi testarea eşuează, puteţi să vă uitaţi în directorul ''​tests''​ şi să comparaţi rezultatele voastre (fişierele ''​tests/​out/​*.out''​),​ cu cele ale implementării de referinţă (fişierele ''​tests/​ref/​*.ref''​).
 ea să-l rulaţi separat şi să experimentaţi cu el şi alte situaţii. ea să-l rulaţi separat şi să experimentaţi cu el şi alte situaţii.
 +
 +<spoiler Testare manuală>​
 <​note>​ <​note>​
 Dacă doriți să testați manual folosind redirectări (fără a introduce de fiecare dată datele de la tastatură),​ puteți folosi această metodă. Dacă doriți să testați manual folosind redirectări (fără a introduce de fiecare dată datele de la tastatură),​ puteți folosi această metodă.
Line 573: Line 577:
 {{programare:​teme_2018:​tema2_diff.png?​800}} {{programare:​teme_2018:​tema2_diff.png?​800}}
 </​note>​ </​note>​
 +</​spoiler>​
 ===== Barem corectare ===== ===== Barem corectare =====
   * Criteriile de notare sunt următoarele:​   * Criteriile de notare sunt următoarele:​
Line 606: Line 611:
   * Tema se va implementa DOAR în limbajul **C**. Va fi compilat și testat DOAR într-un mediu **LINUX**. Nerespectarea acestor reguli aduce un punctaj NUL.   * Tema se va implementa DOAR în limbajul **C**. Va fi compilat și testat DOAR într-un mediu **LINUX**. Nerespectarea acestor reguli aduce un punctaj NUL.
  
-  * Tema va fi trimisă DOAR pe [[https://​elf.cs.pub.ro/​vmchecker/​|vmchecker]],​ sub forma unei arhive ​**ZIP**. Nerespectarea acestei reguli aduce un punctaj NUL pe temă.+  * Temele vor fi trimise OBLIGATORIU ​pe vmchecker **ȘI** pe site-ul de curs (moodle), in sectiunea dedicata temei respective.
  
   * Fișierele temei trebuie OBLIGATORIU împachetate într-o arhiva de tip '​.zip',​ cu numele **Grupa_NumePrenume_Tema2.zip** (exemplu: **369CA_PopescuGigel_Tema2.zip**).   * Fișierele temei trebuie OBLIGATORIU împachetate într-o arhiva de tip '​.zip',​ cu numele **Grupa_NumePrenume_Tema2.zip** (exemplu: **369CA_PopescuGigel_Tema2.zip**).
programare/teme_2018/tema2_2018_ca.1541414657.txt.gz · Last modified: 2018/11/05 12:44 by darius.neatu
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