Вы находитесь на странице: 1из 12

Colegiul Naional Vasile Alecsandri Galai

PROIECT
DE ATESTAT
PROFESIONAL
LA INFORMATIC

TITLUL LUCRRII:

Spnzurtoarea


Elev:
Iessensky Andrei Victor


Profesor ndrumtor
Voinea Mirela
CUPRINS

1. Motivatia

2. C++ Builder

3. Interfata

4. Algoritm

5. Implementari viitoare

6. Bibliografie









MOTIVATIA

Lucrarea de fata isi propune sa studieze functionalitatea, eficienta si utilitatea
limbajului de programare C++ prin compunerea unui cod si compilarea acestuia in practica.
Problema aleasa ca domeniu de studiu este jocul Spanzuratoarea, un joc emblematic pentru
utilizatorii de calculator din toate grupele de varsta, iar grafica pentru ilustrarea spanzuratorii
este realizata din caractere simple. In continuare va voi prezenta caracteristicile si regulile
jocului ilustrat:


Informatii utile:
Jocul Spanzuratoarea a fost adaptat pentru un singur utilizator al aplicatiei
Se poate ghici atat o litera, cat si un grump de litere (sir de caractere)


- Cuvntul ce trebuie ghicit este reprezentat de un ir de linii, fiecare linie reprezentnd o
liter a
cuvntului.

- Sunt oferite ca ajutor prima si ultima litera a cuvantului.

- Dac juctorul care ghicete sugereaz o liter ce se afl n cuvnt, programul completeaz
spatiile cu litera corespunzatoare n toate poziiile unde aceasta apare.

- Dac litera nu se afl n cuvnt, programul deseneaz un element din diagrama
spnzurtoarea.

- Limita de greseli este de: 8

Jocul se ncheie cnd:

Juctorul care ghicete completeaz tot cuvntul, sau l ghicete exact.
Este completata diagrama.




C++ BUILDER

C++Builder este un mediu de dezvoltare rapid a aplicaiilor produs de filiala CodeGear a
Embarcadero Technologies pentru scrierea programelor n limbajul de programare C++. C++Builder
combin biblioteca de componente vizuale i un IDE scris n Delphi, cu un compilator C++. Ciclul de dezvoltare
este n aa fel nct Delphi primete primul mbuntiri semnificative, urmat de C++Builder. Majoritatea
componentelor dezvoltate n Delphi pot fi folosite n C++Builder fr modificri, dar nu i invers.
C++Builder include unelte care permit dezvoltarea vizual bazat pe drag-and-drop, fcnd
programarea mai facil prin implementarea unui GUI builder WYSIWYG n IDE.
C++Builder a fost iniial lansat numai pentru platforma Microsoft Windows. Versiunile urmtoare includeau
Borland CLX, o librrie cross-platform bazat pe Qt, pentru dezvoltare vizual, care funcioneaz pe
platformele Windows i Linux.
n 2003, Borland a lansat C++BuilderX (CBX), scris pe acelai framework ca JBuilder i purta foarte puine
asemnri cu C++Builder sau Delphi. A fost conceput pentru dezvoltarea programelor de dimensiuni mari
pentru ntreprinderi. Cu toate acestea, nu a avut succes comercial. La sfritul anului 2004, Borland a anunat
c va continua s lucreze la clasicul C++Builder si l va distribui mpreuna cu Delphi, abandonnd C++BuilderX.
Dup aproximativ un an de la anun, Borland a lansat Borland Developer Studio 2006, un pachet robust care
include Delphi, C++Builder i C#Builder.
n 2007, Borland a lansat C++Builder 2007, cu suport complet API pentru Microsoft Vista, conformitate sporit
pentru ANSI C++, compilare prin IDE pn la 500% mai rapid, suport pentru MSBuild, arhitectura de baze de
date DBX4 i VCL pentru Web, care suport AJAX. API-ul pentru Vista include aplicaii cu teme i suport
VCL pentru Aero i spaiul de lucru Vista. CodeGear RAD Studio 2007 include C++Builder 2007 i Delphi. Tot n
2007, Borland a renviat brand-ul Turbo i a lansat dou ediii Turbo de C++Builder: Turbo C++
Professional i Turbo C++ Explorer (gratuit), bazat pe Borland C++Builder 2006.
C++Builder 2009 a fost lansat n august 2008, iar printre cele mai semnificative mbuntiri se numr suport
Unicode complet n VCL i RTL, implementare a standardului C++0x, suport complet ITE, componente native
Ribbon i includerea librriei Boost.
O versiune viitoare a CodeGear C++Builder (cu numele de cod Commodore) va avea suport pentru x86-64 i
va crea cod nativ x86-64.
C++Builder a fost iniial lansat numai pentru platforma Microsoft Windows. Versiunile urmtoare
includeau Borland CLX, o librrie cross-platform bazat pe Qt, pentru dezvoltare vizual, care funcioneaz
pe platformele Windows i Linux.
n 2003, Borland a lansat C++BuilderX (CBX), scris pe acelai framework ca JBuilder i purta foarte
puine asemnri cu C++Builder sau Delphi. A fost conceput pentru dezvoltarea programelor de dimensiuni
mari pentru ntreprinderi. Cu toate acestea, nu a avut succes comercial. La sfritul anului 2004, Borland a
anunat c va continua s lucreze la clasicul C++Builder si l va distribui mpreuna cu Delphi, abandonnd
C++BuilderX.
INTERFATA


Literele folosite pentru a ghici cuvantul


Click Start pentru a incepe jocul



//---------------------------------------------------------------------------------------------------------------------------

#include <vcl\vcl.h>
#pragma hdrstop

#include Spanzuratoarea.h

//---------------------------------------------------------------------------------------------------------------------------

#pragma resource *.dfm

using namespace std;

TForm1 *Form1;
//---------------------------------------------------------------------------------------------------------------------------
----------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)

//Declararea butoanelor si incarcarea primei imagini
(exemplu)

{
butoaneLitera[0] = ButtonA;
indexPoza = 1;
Image->Picture->LoadFromFile(img\\1.bmp);
}

//Generarea butoanelor(exemplu)

//---------------------------------------------------------------------------------------------------------------------------
----------------------------------
void __fastcall TForm1::ButtonAClick(TObject *Sender)
{
butonApasat(A);
}

//---------------------------------------------------------------------------------------------------------------------------

//Generarea interfetei jocului

void __fastcall TForm1::ButtonStartClick(TObject *Sender)
{
jocStartat = true;
indexPoza = 1;
vector<AnsiString> cuvinte;

LabelRezultat->Caption = ;
LabelCuvantVizibil->Caption = ;
LabelCuvant->Caption = ;

for(int index = 0; index < NUMAR_LITERE; index++)
{
butoaneLitera[index]->Enabled = true;
}

FILE *fr;
char linie[80];
fr = fopen (spanzuratoarea.txt, rt);
(fr != NULL) if
{
while(fgets(linie, 80, fr) != NULL)
{
cuvinte.push_back(linie);
}
fclose(fr);
}

if(cuvinte.size() == 0)
{
MessageBox(0, (LPSTR) Fisierul spanzuratoarea.txt este gol!, Error,
MB_ICONWARNING | MB_OK);
cuvant = ;
}
else
{
cuvant = cuvinte[random(cuvinte.size())].UpperCase().Trim();
}

if(cuvant.Length() > 0)
{
char* pCuvant = cuvant.c_str();
butoaneLitera[pCuvant[0] - ASCII_OFFSET]->Enabled = false;
butoaneLitera[pCuvant[strlen(pCuvant) - 1] - ASCII_OFFSET]->Enabled = false;
refreshLabelString();
}
else
{
jocStartat = false;
}
}

//---------------------------------------------------------------------------------------------------------------------------

void TForm1::refreshLabelString()
{
AnsiString labelString = ;
char* c = cuvant.c_str();
int litereCorecte = 0;





Pagina de pornire a jocului



Mesajul afisat dupa ghicirea cuvantului

Cuvantul ce trebuia ghicit


// formateaza cuvantul ce va fi afisat (C A _ C _ _ A _ _ R)

for (int index = 0; index < strlen(c); index++)
{
if(!butoaneLitera[c[index] - ASCII_OFFSET]->Enabled)
{
AppendStr(labelString, c[index]);
AppendStr(labelString, );
litereCorecte++;
}
else
{
AppendStr(labelString, _ );
}
}


// afiseaza cuvantul formatat

LabelCuvant->Caption = labelString;

// verifica daca a castigat

if(litereCorecte == strlen(c))
{
LabelRezultat->Caption = Ai castigat!;
jocStartat = false;
}
else
{






O incercare nereusita



// afiseaza poza corespunzatoare
statutului jocului

AnsiString fileName = img\\;
AppendStr(fileName, indexPoza);
AppendStr(fileName, .bmp);
Image->Picture->LoadFromFile(fileName);

// am ajuns la ultima poza, jocul e pierdut

if(indexPoza == NUMAR_POZE)
{
labelString = ;
LabelRezultat->Caption = Ai pierdut!;
for (int index = 0; index < strlen(c); index++)
{
AppendStr(labelString, c[index]);
AppendStr(labelString, );
}
LabelCuvantVizibil->Caption = labelString;
jocStartat = false;
}
}
}

//---------------------------------------------------------------------------------------------------------------------------

void TForm1::butonApasat(char litera)
{
if(jocStartat)
{
if(cuvant.Pos(litera) == 0)
{

// trece la urmatoarea poza

indexPoza++;
}

// dezactiveaza butonul

butoaneLitera[litera - ASCII_OFFSET]->Enabled=false;

// afiseaza interfata noua

refreshLabelString();
}
}

//---------------------------------------------------------------------------------------------------------------------------




ALGORITM













IMPLEMENTARI VIITOARE

Pe viitor, acest joc poate fi dezvoltat ca
aplicatie pentru tablete sau telefoane
inteligente.



BIBLIOGRAFIE

http://ro.wikipedia.org/wiki/Spnzurtoare_(joc)
http://dexonline.ro/moara
http://dexonline.ro/cuvantul-lunii
http://dexonline.ro/cuvantul-zilei
http://dexonline.ro/spanzuratoarea

Вам также может понравиться

  • Întreţinerea şi repararea calculatoarelor
    Întreţinerea şi repararea calculatoarelor
    От Everand
    Întreţinerea şi repararea calculatoarelor
    Оценок пока нет
  • Curs Programare
    Curs Programare
    Документ140 страниц
    Curs Programare
    Parfumeria KelvinCo
    Оценок пока нет
  • Antrenament Java
    Antrenament Java
    Документ27 страниц
    Antrenament Java
    Cezara Cocoi
    Оценок пока нет
  • Rezolvari Programare Procedurala
    Rezolvari Programare Procedurala
    Документ53 страницы
    Rezolvari Programare Procedurala
    micklamickla
    100% (1)
  • Recapitulare C++ Baza
    Recapitulare C++ Baza
    Документ34 страницы
    Recapitulare C++ Baza
    Dragos Vlad
    Оценок пока нет
  • Python
    Python
    Документ4 страницы
    Python
    Catalin Festila
    100% (4)
  • Tutorial Programare in C
    Tutorial Programare in C
    Документ8 страниц
    Tutorial Programare in C
    Vlad Poroch
    Оценок пока нет
  • Lucrare de Laborator 7
    Lucrare de Laborator 7
    Документ19 страниц
    Lucrare de Laborator 7
    arabe arabe
    Оценок пока нет
  • Curs C#
    Curs C#
    Документ33 страницы
    Curs C#
    Vintilescu Bogdan Ion
    Оценок пока нет
  • Operatii Cu Matrici
    Operatii Cu Matrici
    Документ13 страниц
    Operatii Cu Matrici
    Raul Lazar
    100% (3)
  • Lucrare Pentru Susținerea Examenului de Atestare Profesională În Informatică
    Lucrare Pentru Susținerea Examenului de Atestare Profesională În Informatică
    Документ25 страниц
    Lucrare Pentru Susținerea Examenului de Atestare Profesională În Informatică
    19poe
    Оценок пока нет
  • Bazele Unui Limbaj de Programare
    Bazele Unui Limbaj de Programare
    Документ9 страниц
    Bazele Unui Limbaj de Programare
    sandu405
    Оценок пока нет
  • 7
    7
    Документ23 страницы
    7
    ramsesaha
    Оценок пока нет
  • Lab 7
    Lab 7
    Документ8 страниц
    Lab 7
    Ion Popescu
    Оценок пока нет
  • LL78 PR Sir Carac Fun 2019
    LL78 PR Sir Carac Fun 2019
    Документ30 страниц
    LL78 PR Sir Carac Fun 2019
    Alexandrina Bagrin
    Оценок пока нет
  • Kis Alexandru Lab 5
    Kis Alexandru Lab 5
    Документ10 страниц
    Kis Alexandru Lab 5
    Sabine Crihan
    100% (1)
  • Introducere in CPP
    Introducere in CPP
    Документ6 страниц
    Introducere in CPP
    gefinna
    Оценок пока нет
  • Laborator1 1 PDF
    Laborator1 1 PDF
    Документ5 страниц
    Laborator1 1 PDF
    Denis Minjineanu
    Оценок пока нет
  • Introducere in Java
    Introducere in Java
    Документ57 страниц
    Introducere in Java
    Radu Ovidiu Candea
    Оценок пока нет
  • Limbajul de Programare in C
    Limbajul de Programare in C
    Документ10 страниц
    Limbajul de Programare in C
    Robert Pop
    Оценок пока нет
  • LUC LAB ( PC) NR - 7
    LUC LAB ( PC) NR - 7
    Документ31 страница
    LUC LAB ( PC) NR - 7
    Mihai Ciubotaru
    Оценок пока нет
  • Lab07 Pointeri
    Lab07 Pointeri
    Документ8 страниц
    Lab07 Pointeri
    Raifury
    Оценок пока нет
  • Limbaj de Programare
    Limbaj de Programare
    Документ18 страниц
    Limbaj de Programare
    Daniela Szoke
    Оценок пока нет
  • LAB1MDMB
    LAB1MDMB
    Документ10 страниц
    LAB1MDMB
    NeFe We
    Оценок пока нет
  • Proiect Pachete Software
    Proiect Pachete Software
    Документ21 страница
    Proiect Pachete Software
    Andrei
    Оценок пока нет
  • Labor 1 AC
    Labor 1 AC
    Документ14 страниц
    Labor 1 AC
    Ana Toma
    Оценок пока нет
  • Curs CodeBlocksDownload
    Curs CodeBlocksDownload
    Документ131 страница
    Curs CodeBlocksDownload
    Adi Gabriel
    Оценок пока нет
  • 2.elemente de Baza Ale Limbajului C++
    2.elemente de Baza Ale Limbajului C++
    Документ23 страницы
    2.elemente de Baza Ale Limbajului C++
    Dorinel
    Оценок пока нет
  • An1 Lab12 Sem2 20-21
    An1 Lab12 Sem2 20-21
    Документ8 страниц
    An1 Lab12 Sem2 20-21
    Ioana
    Оценок пока нет
  • Indrumar Lab-Oct 2008
    Indrumar Lab-Oct 2008
    Документ75 страниц
    Indrumar Lab-Oct 2008
    Ruxandra Populeanu
    100% (1)
  • Stan
    Stan
    Документ12 страниц
    Stan
    Florin Marius Valciu
    Оценок пока нет
  • Lab 2
    Lab 2
    Документ5 страниц
    Lab 2
    Daniel Popa
    Оценок пока нет
  • C in Romano2
    C in Romano2
    Документ12 страниц
    C in Romano2
    Victor Burcovski
    Оценок пока нет
  • Cobzac Daniel Lab6PC
    Cobzac Daniel Lab6PC
    Документ19 страниц
    Cobzac Daniel Lab6PC
    Music NoCopyright
    Оценок пока нет
  • RefC1 Din14 2021-p
    RefC1 Din14 2021-p
    Документ9 страниц
    RefC1 Din14 2021-p
    MariusELpatron
    Оценок пока нет
  • Csharp
    Csharp
    Документ21 страница
    Csharp
    AndreasTanase
    Оценок пока нет
  • Introducere Programare Java
    Introducere Programare Java
    Документ26 страниц
    Introducere Programare Java
    Mihai
    Оценок пока нет
  • Limbajul C
    Limbajul C
    Документ35 страниц
    Limbajul C
    Andreea Laura
    Оценок пока нет
  • Structuri de Date Avansate
    Structuri de Date Avansate
    Документ13 страниц
    Structuri de Date Avansate
    Nacu Anda
    Оценок пока нет
  • Curs Autocad 21
    Curs Autocad 21
    Документ11 страниц
    Curs Autocad 21
    Udvescu Liviu Nicolas Loredana
    Оценок пока нет
  • AlexeTudorStefan Lab05
    AlexeTudorStefan Lab05
    Документ10 страниц
    AlexeTudorStefan Lab05
    Ovidiu Moldovan
    100% (1)
  • AlexeTudorStefan Lab12
    AlexeTudorStefan Lab12
    Документ3 страницы
    AlexeTudorStefan Lab12
    Ovidiu Moldovan
    Оценок пока нет
  • Test Functii Ce Face Completare Program
    Test Functii Ce Face Completare Program
    Документ1 страница
    Test Functii Ce Face Completare Program
    Daniel Popa
    Оценок пока нет
  • Lab7ClServer PDF
    Lab7ClServer PDF
    Документ10 страниц
    Lab7ClServer PDF
    Dicu Andrei Catalin
    Оценок пока нет
  • Operatii de Intrare - Iesire - C++
    Operatii de Intrare - Iesire - C++
    Документ25 страниц
    Operatii de Intrare - Iesire - C++
    Jordan Freeman
    100% (1)
  • Algoritmi Paraleli Si Distribuiti
    Algoritmi Paraleli Si Distribuiti
    Документ33 страницы
    Algoritmi Paraleli Si Distribuiti
    mihdragan
    Оценок пока нет