Documentatie-1
-
Upload
andrei-victor -
Category
Documents
-
view
46 -
download
0
description
Transcript of Documentatie-1
-
5/24/2018 Documentatie-1
1/12
Colegiul Naional Vasile Alecsandri Galai
PROIECT
DE ATESTAT
PROFESIONAL
LA INFORMATIC
TITLUL LUCRRII:
Spnzurtoarea
Elev:
Iessensky Andrei Victor
Profesor ndrumto
Voinea Mire
-
5/24/2018 Documentatie-1
2/12
CUPRINS
1.Motivatia2.C++ Builder3.Interfata4.Algoritm5.Implementari viitoare6.Bibliografie
-
5/24/2018 Documentatie-1
3/12
MOTIVATIA
Lucrarea de fata isi propune sa studieze functionalitatea, eficienta si utilitatealimbajului de programare C++ prin compunerea unui cod si compilarea acestuia in practica.
Problema aleasa ca domeniu de studiu este jocul Spanzuratoarea, un joc emblematic pentutilizatorii de calculator din toate grupele de varsta, iar grafica pentru ilustrarea spanzuratoeste realizata din caractere simple. In continuare va voi prezenta caracteristicile si regulile
jocului ilustrat:
Informatii utile:Jocul Spanzuratoareaa 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 oliter acuvntului.
- Sunt oferite ca ajutor prima si ultima litera a cuvantului.
- Dac juctorul care ghicete sugereaz o liter ce se afl n cuvnt, programul completeazspatiile cu litera corespunzatoare n toate poziiile unde aceasta apare.
- Dac litera nu se afl n cuvnt, programul deseneazun element din diagramaspnzurtoarea.
- Limita de greseli este de: 8
Jocul se ncheie cnd:
Juctorul care ghicete completeaz tot cuvntul, sau l ghicete exact.
Este completata diagrama.
-
5/24/2018 Documentatie-1
4/12
C++ BUILDER
C++Buildereste un mediu de dezvoltare rapid a aplicaiilor produs de filiala CodeGear a
Embarcadero Technologies pentru scrierea programelor n limbajul de programare C++. C++Builder
combinbiblioteca de componente vizuale i un IDE scris n Delphi, cu un compilator C++. Ciclul de dezvolt
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 builderWYSIWYGn 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 anun
c va continua s lucreze la clasicul C++Builder si l va distribui mpreuna cu Delphi, abandonnd C++Builde
Dup aproximativ un an de la anun, Borland a lansat Borland Developer Studio 2006, un pachet robust car
include Delphi, C++Builder i C#Builder.
n 2007, Borland a lansat C++Builder 2007, cu suport complet API pentru Microsoft Vista, conformitate spor
pentru ANSI C++, compilare prin IDE pn la 500% mai rapid, suport pentru MSBuild, arhitectura de baze
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. To2007, 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 BorlandC++Builder 2006.
C++Builder 2009 a fost lansat n august 2008, iar printre cele mai semnificative mbuntiri se numr supo
Unicode complet n VCL i RTL, implementare a standardului C++0x, suport complet ITE, componente nati
Ribbon i includerea librriei Boost.
O versiune viitoare a CodeGear C++Builder (cu numele de cod Commodore) va avea suport pentru x86-64
va crea cod nativ x86-64.
C++Builder a fost iniial lansat numai pentru platforma Microsoft Windows. Versiunile urmtoareincludeau Borland CLX, o librrie cross-platform bazat pe Qt, pentru dezvoltare vizual, care funcioneazpe platformele Windows i Linux.
n 2003, Borland a lansat C++BuilderX (CBX), scris pe acelai framework ca JBuilder i purta foartepuine asemnri cu C++Builder sau Delphi. A fost conceput pentru dezvoltarea programelor de dimensiunmari pentru ntreprinderi. Cu toate acestea, nu a avut succes comercial. La sfritul anului 2004, Borland aanunat c va continua s lucreze la clasicul C++Builder si l va distribui mpreuna cu Delphi, abandonndC++BuilderX.
http://ro.wikipedia.org/wiki/VCLhttp://ro.wikipedia.org/wiki/WYSIWYGhttp://ro.wikipedia.org/wiki/WYSIWYGhttp://ro.wikipedia.org/wiki/VCL -
5/24/2018 Documentatie-1
5/12
INTERFATA
Literele folosite pentru a ghici cuvantul
Click Start pentru a incepe jocul
//------------------------------------------------------------------------------------------------------------------------
#include
#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;
-
5/24/2018 Documentatie-1
6/12
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 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);
-
5/24/2018 Documentatie-1
7/12
}
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;
-
5/24/2018 Documentatie-1
8/12
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))
{
-
5/24/2018 Documentatie-1
9/12
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,);
}
-
5/24/2018 Documentatie-1
10/12
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
-
5/24/2018 Documentatie-1
11/12
IMPLEMENTARI VIITOARE
Pe viitor, acest joc poate fi dezvoltat ca
aplicatie pentru tablete sau telefoaneinteligente.
BIBLIOGRAFIE
-
5/24/2018 Documentatie-1
12/12
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
http://ro.wikipedia.org/wiki/Sp%C3%A2nzur%C4%83toare_(joc)http://ro.wikipedia.org/wiki/Sp%C3%A2nzur%C4%83toare_(joc)http://dexonline.ro/moarahttp://dexonline.ro/moarahttp://dexonline.ro/cuvantul-luniihttp://dexonline.ro/cuvantul-luniihttp://dexonline.ro/cuvantul-zileihttp://dexonline.ro/cuvantul-zileihttp://dexonline.ro/spanzuratoareahttp://dexonline.ro/spanzuratoareahttp://dexonline.ro/spanzuratoareahttp://dexonline.ro/cuvantul-zileihttp://dexonline.ro/cuvantul-luniihttp://dexonline.ro/moarahttp://ro.wikipedia.org/wiki/Sp%C3%A2nzur%C4%83toare_(joc)