Sunteți pe pagina 1din 18

Colegiul National „Dragos Voda”

Campulung Moldovenesc

LUCRARE PENTRU ATESTAREA


COMPETENTELOR PROFESIONALE LA
INFORMATICA

Profesor indrumator: Elev:


Cardeiu Emilia Popescu Adelin

-1- Sesiunea mai - 2020


Spanz
urato
area

2
Cuprins

I. Argument.
II. Introducere aplicatie.
III. Despre joc.
IV. Despre limbajul c++ si codeblocks:
IV.1 C++;
IV.2 Codeblocks;
V. Etapele crearii.
VI. Perspectiva si solutii de optimizare.
VII. Concluzii.
VIII. Bibliografie.

3
Argume
nt
Aceasta aplicatie este destinata tuturor persoanelor care doresc sa incerce un
joc in care is testeze abilitatile de a ghici un cuvant, de a primi bucuria de a castiga, si
sansa de a mai incerca inca odata.
Motivul alegerii acestei teme a fost pasiunea mea pentru informatica si pentru
programare, dar si pentru a aduce in fata altor oameni o aplicatie care poate fi
distractiva si totodata creata de mine.
Exista mii de posibilitati de a crea un joc, cat si mii de limbaje de programare,
asa ca alegerea mea a fost sa creez un joc in limbajul de programare c++, care este
bine cunoscut de elevii de liceu de la profilul matematica-inforamtica.

4
Introdu
cere
De multe ori, eforturile de a construi un sistem software este ingreunat de

aplicati
faptul că nu ştim ceea ce construim şi nici cum s-o facem. Pe de altă parte ne lovim
de inerenta complexitate a sistemelor software şi de incapacitatea umană de a stăp‚ni
complexitatea. Există sisteme software care nu sunt complexe, acestea sunt aplicaţiile

e
specificate, construite, intreţinute şi folosite de aceeaşi persoană, de obicei un
programator amator sau profesionist. Acestea au un scop limitat şi un ciclu scurt de
viaţă. E mai uşor să fie inlocuite decat să fie extinse sau refăcute. De aceea, nu
proiectarea acestora este interesantă, ci a sofware-ului de putere industrială (ex:
sisteme pentru controlul proceselor fizice, pentru care spaţiul şi timpul sunt resurse
foarte importante, sisteme care mimează inteligenţa umană, sisteme pentru
coordonarea traficului aerian sau al căilor ferate, etc.). Aceste sisteme au un ciclu de
viaţă mult mai lung şi, de-a lungul timpului, mulţi utilizatori depind de funcţionarea
lor corectă.
Exista mii de posibilitati de a crea un joc, cat si mii de limbaje de programare,
asa ca eu am creat si voi prezenta un joc creat in limbajul c++.
In cadrul lucrarii este utilizat mediul de programare Codeblocks 17.12, aceasta
fiind ultima actualizare a aplicatiei pana la momentul redactarii prezentului
document. Aplicatia este una de tip Console Application, putand fi rulata prin
apasarea combinatiei de taste Alt+F9 in cadrul programului Codeblocks sau apasand
butonul Build and Run din cadrul interfetei de utilizare.
Pentru a accesa aplicatia despre care vorbeste prezenta lucrare, deschidem cu
ajutorul aplicatiei Codeblocks programul denumit Spanzuratoarea, apasand click
dreapta pe acest program si selectand optiunea Open with Codeblocks. Odata ce
codul este prezent in fata utilizatorului, acesta nu trebuie decat sa ruleze programul,
folosind una dintre comenzile mentionate la alineatul anterior si apoi, sa respecte
intocmai indicatiile primite in consola ce se va deschide odata cu rularea corecta a
programului.
Primii pasi utilizati in cadrul crearii programului de catre programator sunt
reprezentati de instalarea mediului de programare Codeblocks, aceasta putand fi
efectuata in mod gratuit, de pe site-ul oficial www.Codeblocks.com, de catre orice
persoana. Pentru o instalare eficienta, se doreste a se preciza versiunea Windows-ului
sau sistemlui de operare dupa caz, precum si versiunea acestuia prezenta pe
5
calculatorul ce devine centrul de creeare a aplicatiilor. Odata instalat, se activeaza
compilerul mingw, pentru a putea compila eficient orice program scris in fisier. Dupa
ce acesti pasi au fost urmati, se trece la creearea efectiva a aplicatiei, prin selectarea
optiunii New Project-Console Application-Partitie(locatia fisierului ce va urma fi
stocat). Dupa acesti pasi se va denumi efectiv fisierul, utilizand un nume sugestiv. Se
urmeaza pasii, pana la aparitia comenzii Finish, inclusiv aceasta, deschidem
proiectul, utilizand meniul din partea stanga a ecranului, apasand semnul ,,+”.
Jocul “Spanzuratoarea” reprezinta o aplicatie care acopera caracteristicile unui
program creat de un incepator in tainele informaticii, fiind totodata un produs finit si
care poate fi operationalizat si care functioneaza la parametrii optimi de fiecare data
cand este rulat. Ideea acestei aplicatii vine de la ideea clasicului joc care are aceeasi
denumire „Spanzuratoarea”, aparut ca un joc interactiv intre doua sau mai multe
persoane care a inceput printr-un simpu desen. Aplicatia a fost conceputa pe
parcursul a mai multor zile, fiind gandita pentru o dezvoltare durabila, avand
posibilitatea de evolutie continua pe parcursul trecerii timpului.
In continuare, vom prezenta modul de dezvoltare al aplicatiei, precum si
elementele de cod care au fost utilizate in realizarea programului, facand precizarea
ca a fost folosit standarul C++ 11, fiind o versiune actualizata a limbajului de
programare C++, care permite utilizarea unor functii predefinite sau elemente de
sintaxa noi si utile in dezvoltarea aplicatiilor pentru consola Codeblocks.

6
Despre
joc
Un jucator se gandeste la un cuvant, scrie prima si ultima litera si în locul
celorlalte scrie liniute (daca vreuna dintre literele din interior este la fel ca prima sau
ca ultima, este scrisa si ea). Celalalt jucator incearca sa ghiceasca la ce cuvant s-a
gandit primul. El spune litere; de fiecare data cand ghiceste o litera care apare in
cuvant, liniuta sau liniutele corespunzatoare sunt inlocuite cu litera respectiva; daca
litera propusa de al doilea jucator nu se afla în cuvant, primul deseneaza sub o
spanzuratoare o parte a corpului; se incepe cu capul si se continua cu trunchiul, mana
stanga, mana dreapta, piciorul stang și piciorul drept. Jocul se termina în cazul în care
este ghicit intregul cuvant sau este desenat intregul corp.

Pe parcursul jocului, spanzuratoarea ar arata, succesiv, ca in imaginile


urmatoare

     

 
Numele jocului in engleza este Hangman; si cum programatorii fac multe chestii în
engleza, vom face si noi. In primul rand vom exemplifica ghicirea literelor folosind
cuvantul hangman. La inceput ar trebui scrisa prima litera (H), cinci liniute si ultima
literă (N). Asadar, initial cuvantul nostru ar arata asa:
H_____N
Daca urmatoarea litera ghicita ar fi G, atunci linuta corespunzatoare ar fi inlocuita si
cuvantul ar deveni:
H_N___N
Daca urmatoarea litera ghicita ar fi G, atunci linuta corespunzătoare ar fi înlocuita si
cuvantul ar deveni:
7
H_NG__N
Urmatoarea litera ar putea fi A; ea apare de două ori în cuvant; ambele liniute sunt
inlocuite:
HANG_AN
Ultima litera ghicita ar fi M și întregul cuvânt ar fi descoperit:
HANGMAN
Acum stim cam ce ar trebui sa facem... Consideram ca primul jucator este
calculatorul. El trebuie sa aleaga ce cuvant trebuie sa ghicim, sa deseneze
spanzuratoarea pe parcursul jocului si sa afiseze cuvantul cu literele neghicite inca
inlocuite cu liniute.

8
Despre
c++ si
C++
Codeblo
cks
Limbajul de programare C++ La începutul anilor 70 a apărut limbajul C –
creaţia lui Dennis Ritchie şi Brain Kernighan. Limbajul C++ este creaţia lui Bjarne
Stroustrup şi reprezintă o extensie a limbajului C care permite programarea pe
obiecte.
Realizarea unui program scris în C++ necesită parcurgerea a patru etape:
• editare – scrierea programului sursă, prin crearea unui fişier cu extensia cpp;
• compilare – se aduce în memoria internă programul sursă, se verifică erori şi se
converteşte acest program în program obiect, având extensia obj;
• link-editare – se leagă programul obiect cu bibliotecile de sistem şi se transformă
într-un program executabil având extensia exe;
• execuţie – se lansează în execuţie programul obiect: se efectuează citirea datelor,
calculele şi scrierea rezultatelor, formându-se fişierul.
Structura generală a unui program C++
• un program C++ este constituit dintr-o succesiune de module, denumite funcţii
• una dintre aceste funcţii este funcţia principală, denumită main()
• main() este o funcţie specială, care trebuie să apară obligatoriu o singură dată în
orice program C++
• execuţia oricărui program începe cu funcţia main()
• o funcţii este constituită din antet şi corp

9
• antetul funcţiei conţine numele funcţiei, tipul rezultatului pe care îl calculează
funcţia şi o listă de parametri prin care funcţia comunică cu exteriorul ei, încadrată
între paranteze rotunde
• corpul funcţiei conține declarații și instrucțiuni care specifică prelucrările realizate
de funcția respectivă
Elementele de limbaj Limbajul C++ este caracterizat de:
• sintaxă – este formată din totalitatea regulilor de scriere corectă a programelor;
• semantică – reprezintă semnificaţia construcţiilor corecte din punct de vedere
sintactic;
• vocabular – este format din totalitatea cuvintelor care pot fi folosite întrun program.

Forma funcţiei main Instrucţiunea return este utilizată pentru a încheia execuţia
unei funcţii şi a returna valoarea expresiei specificate în instrucţiunea return ca
valoare a funcţiei.

10
11
Codeblo
cks
Code :: Blocks este un gratuit , open-source cross-platform IDE care suportă
mai multe compilatoare , inclusiv CCG , zăngănit și Visual C ++ . Este dezvoltat în C
++ folosind wxWidgets ca set de instrumente GUI . Folosind o arhitectură de plugin,
funcțiile și caracteristicile sale sunt definite de pluginurile furnizate. În prezent,
Code :: Blocks este orientat către C , C ++ și Fortran . Are un sistem de
construire personalizat și suport opțional pentru marca .
Compilatoare:
Code :: Blocks acceptă mai multe compilatoare,
inclusiv GCC , MinGW , Digital Mars , Microsoft Visual C ++ , Borland C +
+ , LLVM Clang , Watcom , LCC și compilatorul Intel C ++ . Deși IDE a fost
proiectat pentru limbajul C ++, există unele suport pentru alte limbi,
inclusiv Fortran și D . Un sistem plug-in este inclus pentru a sprijini alte limbaje de
programare.

12
Etapele
crearii
Aplicatia de consola, „Spanzuratoarea”, a fost realizata in cadrul mediului de
programare Codeblocks, fiind scrisa in limbajul de programare C++.
Aceasta aplicatie poate fi deschisa prin deschiderea fisierului „spanzuratoarea”
unde gasim fisierul „Spanzuratoarea” fiind un „CBP File”. Accesam fisierul iar codul
va fi afisat pe aplicatia codeblocks.

13
Crearea acestei aplicatii a inceput in primul rand prin structurarea programului
in mai multe subprogra me care indeplinesc anumite cerinte.

14
Pentru inceput am adaugat bibliotecile necesare rularii programului astfel incat
buna functionare a acestui program sa fie optima.
(„<iostream>,<cstring>,<windows.h>”)
Variabila globala „v” reprezinta numarul de vietii, prezenta acestei variabile
este necesara aproape in fiecare subprogram.
Subprogramul:
 Regulament: contine regulamentul care va fi specificat in momentul in care
aplicatia este pornita;
 Generare: inlocuieste semnul ”_” cu litera introdusa de jucator, doar daca
este corecta;

 Verificare: verifica daca cuvantul format din literele gasite de jucator sunt
complete;
 Introducere_litera: pune jucatorul sa introduca o litera , iar daca este corecta
se va apela subprogramul „generare” ,altfel desenul ce repre-
zinta spanzuratoarea va incepe sa apara pe ecran;

 Degenerare: transforma cuvantul initial intr-o forma care va contine doar


prima si ultima litera, celelalte fiind sub forma „_”;
 Introd_cuvant: te pune sa alegi un numar de la 1 la 100, acest numar
Reprezentand cuvantul respectiv;
 Main: leaga toate subprogramele astfel incat programul sa functioneze
optim;

15
Pers
pecti
va si
Pentru a optimiza codul, dorim a implementa tehnica recursivitatii cu scopul
solut
precis de a oferi posibilitatea utilizatorilor de a relua jocul de cate ori doresc acestia,
existand in mod evident si optiunea de a iesi din rularea programului atunci cand se

ii de
doreste. De asemenea, dorim a evita folosirea instructiunii alternative ,,if” intr-un
mod abuziv prin folosirea unor subprograme care sa returneze in mod repetat
optiunile alese de catre utilizator pentru fiecare executie a codului si a rularii jocului
in parte.
opti
De asemenea, pentru a crea posibilitatea de iesire din cadrul jocului in orice
miza
moment se doreste a se utliza functia exit() pe tot parcursul executiei programului,
fiind legata la fiecare subprogram ce alcatuieste programul complet.

re
Odata cu dezvoltarea jocului pe care am prezentat-o anterior, se pot gasi multe
alte metode de dezvoltare si/sau optimizare, mentionand acum 2 dintre acestea:
realizarea unei grafici specifice folosind aplicatii de dezvoltare grafica Unity 3D si
Real Engine, precum si utilizarea inteligentei artificiale, bazate pe machine learning,
pentru a putea face adversarul ( calculatorul) a lua decizii in functie de deciziile
noastre, atunci cand modul multiplayer este incompatibil.
Astfel, plecandu-se de la scheletul pe care tanarul programator l-a conceput se
pot realiza adevarate aplicatii, schimband si domeniul aplicat, aducand spre
exemplificarea acestei idei schimbarea specificului jocului, intr-un debate intre 2
persoane sau om-computer care se dueleaza pe baza unor informatii detinute sau
acumulate in urma consulatarii mijloacelor de informare. Alte domenii care pot fi
abordate plecand de la scheletul acestei aplicatii sunt : domeniul medical – prin luare
16
deciziilor intre prescriptia a doua tipuri de tratament, tinand cont de caracteristicile
cunoscute si dobandite in timp ; domeniul bancar – analiza comparativa a doua
simulatoare de credit ale bancilor, precum si a ofertelor de imprumut si finantare etc.

Concluz
ii
Aplicatia “Spanzuratoarea” este realizata in mediul de programare Codeblocks,
fiind scrisa prin utilizarea limbajului C++. Prin intermediul acestei aplicatii,
programtorul vrea sa transcrie un simplu joc de pe foaie pe un dispozitiv prin
intermediul unui limbaj de programare. Acest lucru va face ca aplicatia sa fie una
interactiva sa amuzanta.
Prin utilizarea programarii modulare, prin impartirea programului in
subprograme, se asigura o buna evaluare a codului, precum si o modificare facila a
componentelor acestuia, permitand oricarui programator a realiza modificari
asupra codului sursa. De asemenea, programul respecta regulile de identare,
fiecare linie fiind subordonata cu alineat liniilor precedente, precum descrie si
logica primara, intuitiva. Codul este unul liniar, fara salturi intre subprograme intr-
un mod serpuit, acest lucru asigurand o buna intelegere a codului scris de
programator, precum si a modului de rulare al aplicatiei.
Cuvântul ce trebuie ghicit este reprezentat de un șir de linii, fiecare linie
reprezentând o literă a cuvântului. Dacă jucătorul care ghicește sugerează o literă
ce se află în cuvânt, celălalt jucător o completează în toate pozițiile unde aceasta
apare. Dacă litera nu se află în cuvânt, celălalt jucător desenează un element din
diagrama „spânzurătoarea”.
Jocul se încheie când:
o Jucătorul care ghicește completează tot cuvântul, sau îl ghicește exact.
o Celălalt jucător completează diagrama.
Diagrama este gândită să semene cu cea a unui om aflat la spânzurătoare. Cu
toate ca au apărut dezbateri privind bunul gust al imaginii, aceasta încă se
folosește și astăzi.

17
In concluzie acest program care ar trebui sa reprezinte jocul “Spanzuratoarea”
este unul interactiv, educational dar si haios.

BIbliog
rafie
 https://en.wikipedia.org/wiki/Code::Blocks
 https://ro.wikipedia.org/wiki/C%2B%2B
 https://codecool.com/ro/blog/ghid-c-incepatori/
 https://www.edusoft.ro/introp/index.php/cursuri/curs2/

Sfarsit

18

S-ar putea să vă placă și