Dezvoltarea Unui Joc Utilizând Visual Basic

FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI” TIMIȘOARA

UNIVERSITATEA “IOAN SLAVICI” TIMIȘOARA

FACULTATEA DE INGINERIE

DOMENIUL CALCULATOARE ȘI TEHNOLOGIA INFORMAȚIEI

FORMA DE ÎNVĂȚĂMÂNT – ZI

PROIECT DE DIPLOMĂ

CONDUCĂTOR ȘTIINȚIFIC

prof. univ. dr . TITUS SLAVICI

ABSOLVENT

CIUPA MIHAELA – CARMINA

– 2016 –

FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI” TIMIȘOARA

UNIVERSITATEA “IOAN SLAVICI” TIMIȘOARA

FACULTATEA DE INGINERIE

DOMENIUL CALCULATOARE ȘI TEHNOLOGIA INFORMAȚIEI

FORMA DE ÎNVĂȚĂMÂNT – ZI

DEZVOLTAREA UNUI JOC UTILIZÂND VISUAL BASIC

CONDUCĂTOR ȘTIINȚIFIC

prof. univ. dr. TITUS SLAVICI

ABSOLVENT

CIUPA MIHAELA – CARMINA

-2016-

Cuprins

Introducere

Visual Basic este un limbaj de programare performant derivat din forma incipienta și mai simpla a DOS numita Basic. BASIC reprezinta prescurtarea de la denumirea englezeasca „Beginners All – purpose Symbolic Instruction Code”. Codul din Visual Basic emuleaza instrucțiuni in limba engleza.

Visual Basic este un limbaj de programare destul de simplu, „user friendly”, care poate fi folosit si de persoane care nu au experienta in programare. In cazul copiilor, invatarea acestui program in este benefica in dezvoltarea gandirii lor logice. Visual Basic este folosit atat pentru creerea unor aplicatii pentru amuzament, cum ar fi jocurile, precum si a unor aplicatii mai complexe, folosite in comert si industrie.

Deși sunt multe versiuni de Visual Basic accesibile pe piața, Visual Basic 6.0 este standardul din care au fost imbunatațite și dezvoltate versiuni mai noi. Visual Basic 6.0 se preteaza la lucrul pe diferite versiuni ale sistemului de operare Windows.

Tema lucrarii

Tema lucrarii o constituie realizarea unui joc de tip „Spanzuratoarea” , destinat unui singur utilizator, prin folosirea mediului de lucru Visual Studio și limbajului de programare Visual Basic. Pentru implementarea aceste teme este nevoie de cunoștiințe referitoare la utilizarea mediului de lucru Visual Studio, cunoștiințe referitoare la modul de utilizare al limbajului de programare Visual Basic și cunoștințe matematice care vor fi utilizate pentru implementarea interfeței grafice a aplicației care va fi creată în cadrul acestei lucrări matematice.

Din punct de vedere al functionarii, aplicatia de tip joc va permite unui singur utilizator sa foloseasca interactiv jocul, impotriva calculatorului.

Pentru implementarea acestei aplicații se va încerca să se separe partea de interfață grafică de partea de partea de logică de funcționare a jocului. Se va crea o clasa separată care va fi responsabilă de implementarea logicii de funcționare a aplicației de tip joc. Aceeastă clasă va gestiona modul în care se comportă jocul, se va ocupa cu gestionarea incercarilor ramase și se va ocupa cu decizia finala, prin care utilizatorul va fi declarat invingator sau invins.

Aplicația de tip joc va fi implementată sub forma unei aplicații de tip Windows Forms Application. Acest tip de aplicație permite crearea unor ferestre folosind obiecte existente (TextBox-uri, Label-uri,PictureBox-uri,etc) și crearea de cod care să gestioneze modul în care aceste obiecte existente interacționează unele cu altele sau care gestionează modul în care aceste controale se comportă sau sunt populate cu date. Acest tip de aplicație este foarte răspândită în acest domeniu, aplicațiile simple de acest fel dezvoltându-se relativ ușor datorită faptului că se pot folosi controalele predefinite. Utilizarea acestor controale ajută programatorul să economiseacă foarte mult timp, timpul necesar dezvoltării unei astfel de aplicații micșorându-se considerabil în comparație cu cazul în care programatorul trebuia să își implementeze toate aceste controale.

Toate aceste ideei amintite mai sus vor fi detaliate în cadrul acestei lucrări de licență, creendu-se astfel o vedere de ansamblu asupra etapelor care trebuiesc parcurse pentru implementarea unei aplicații software utilizând mediul de lucru Visual Studio și limbajul de programare Visual Basic.

I.2 Structura lucrarii

În cadrul acestui subcapitol se va prezenta modul în care este structurată această lucrare prin descrierea conținutului fiecărui capitol și se va face o scurtă prezentare asupra a ceea ce va conțne fiecare capitol. Acest lucru este foarte util deoarece se poate creea o vedere de ansamblu asupra acestei lucrări și se poate oferi o vedere de ansamblu cititorului asupra obiectivelor care sunt urmărite.

În capitolul 2 Mediul de programare Visual Studio va voi prezenta câteva noțiuni introductive despre mediul de programare Visual Studio. Va voi prezenta modul in care se poate crea un proiect nou in Visual Studio, modul prin care se deschide un proiect existent în Visual Studio, modul în care se poate folosi debuggerul pentru a depana un program precum și multe alte facilități pe care acest mediu de dezvoltare le oferă. De asemenea se vor prezenta și principalele ferestre ale mediulul de dezvoltare Visual Studio și se vor prezenta facilitățile care sunt oferite de către aceste ferestre. Tot în cadrul acestul capitol se vor prezenta noțiuni referitoare la modul de lucru în echipă și noțiuni referitoarea la folosirea unui TFS pentru sincronizarea codului care este scris de mai multi membrii ai unei echipe. Se va prezenta cum se poate sincroniza codul utilizând un TFS și se vor detalia care sunt facilitățile pe care un TFS le pune la dispoziția programatorilor sau testorilor. Toate conceptele care sunt prezentate în cadrul acestui capitol sunt concepte de bază pe care un programator trebuie să le știe atunci când lucrează cu mediul de dezvoltare Visual Studio.

În cadrul capitolului 3 ,Limbajul de programare Visual Basic, se vor prezenta informații referitoare la limbajul de programare utilizat pentru a crea aplicația de tip joc. Se vor detalia principalele notiuni referitoare la codul scris utilizând Visual Basic, se vor prezenta principalele structuri decizionale și iterative pe care acest limbaj le pune la dispoziția programatorilor și se prezenta câteva exemple de cod scris uitlizând acest limbaj de programare. Aceste exemple de cod vor fi foarte utile deoarece pentru implementarea aplicației de tip joc, se vor folosi de foarte multe ori structurile de tip iterative sau structuri de tip decizionale pentru a implementa cerințele de funcționare impuse prin specificații.

În cadrul capitolului 4 va vom prezenta principalele functii din Visual Basic si structura matricilor,iar in cadrul capitolului 5 va vom prezenta elementele grafice cu ajutorul carora vom construi interfata aplicatiei de tip joc.

În cadrul capitolului 6 denumit și Specificații de funcționare se vor prezenta principalele cerințe funcționale pe care aplicația de tip joc care se dorește a fi implementată trebuie să le implementeze. Se vor descrie de asemena cerințele pe care jocul trebuie să le implementeze, adică un set de reguli pe care jucătorii trebuie să le respecte. Pe baza acestor cerințe se va implementa modul de funcționare al aplicației. De asemenea aceste specificații pot să fie utilizate și pentru testarea aplicației finale.

În cadrul acestui capitol și anume capitolul 7 denumit și Implementarea aplicației se vor prezenta modul în care au fost implementate cerințele prevazute prin specificații. Se va prezenta arhitectura aplicației software creată și se va prezenta partea de cod care a fost scrisă pentru implementarea acestor specificații. De asemenea se vor prezenta problemele care au apărut în procesul de implementare și se va detalia modalitatea de soluționare a lor care a fost găsită. Tot în cadrul acestui capitol se vor face precizări referitoare la modul în care s-a făcut separearea părții care se ocupă cu logica de comandă a aplicație de partea de interfață utilizator. Aceast proces de separarea este foarte util deoarece codul scris în acest fel se poate porta pe o altă aplicație (de exemplu pe o alicație mobilă) și acest cod este mult mai ușor de întreținut putându-se modifica logica de funcționare a jocului nemodificând cod care este plasat în zona unde se gestionează și interfața utilizator.

În capitolul 8 denumit și Concluzii se vor prezenta principalele concluzii care au fost identificate în urma implementării acestei lucrări de licență și se va face de asemena un rezumat asupra a ceea ce s-a realizat în cadrul acestei lucrări de licență. De asemenea se vor prezenta problemele care au apărut pe parcursul acestei lucrări și soluțiile care au fost găsite pentru rezolvarea acestor probleme apărute pe parcursul etapelor de dezvoltare a produsului software

În încheierea acestei lucrări se vor prezenta principalele surse bibliografice care au fost folosite pentru implementarea acestei lucrări de licență. Se vor enumera principalele surse bibliografice folosite pentru scrierea codului aplicației software, aceste surse bibligrafice sunt în principal cărți care au toate aceeași temă și anume prezentarea modului de utilizarea a mediului de programare Visual Basic.

Mediul de programare Visual Studio

In cadrul acestui capitol va voi prezenta cateva notiuni introductive despre modul de lucru in Visual Studio, despre crearea unui proiect nou , dar si despre deschiderea unui proiect deja existent, precum si noțiuni referitoarea la depanarea aplicațiilor utilizând debugger-ul pus la dispoziție de acest mediu de lucru. Pentru o parte din aceste noțiuni care vor fi detaliate în cadrul acestui capitol se vor prezenta și o serie de exemple practice.

Pentru lansarea aplicatiei Visual Studio, se va deschide aplicatia prin intermediul shortcut-ului de pe Desktop, sau prin rularea ei directa din directorul de instalare.

Odata deschisa, se va afisa fereastra din figura 2.1 ,fereastră care conține mai multe zone, fiecare din aceste zone având o funcție bine definită.

Figura 2.1 – Visual Studio

In partea de sus a ferestrei se pot observa cele 2 zone, anume bara de meniu(fig. 2.2) si bara de unelte a aplicatiei. . Bara de meniuri permite efectuarea anumitor comenzi cum ar fi crearea unui proiect nou sau a unui fișier nou, deschiderea unui fișier sau a unui proiect existent, printarea la imprimantă a unor porțiuni de cod, vizualizarea fisierelor recent deschise de către utilizator, căutarea unui text în soluție, facilități de modificarea a modului în care arată spațiul de lucru, vizualizarea anumitor ferestre (Output-ul, Error List, Find Results, Toolbox-ul, Call Stack-ul și multe astfel de exemple), selectarea facilităților de depanare ( adăugare de break-point-uri, ștergerea de break-point-uri, activare sau dezactivare de break-point-uri) și multe astfel de exemple.

Figura 2.2- Bara de meniu

Privind bara de unelte a aplicatiei, aceasta este o zona care poate fi customizata si care conține anumite comenzi. Aceste comenzi pot fi predefinite și amplasate în această bară de unelte la instalarea mediului de lucru Visual Studio, sau pot fi definite de către utilizator, fiecare putând să îsi customizeze mediul de lucru după bunul său plac si cu usurinta. Spre exemplificare se prezintă o serie de comenzi care pot să se gasească amplasate în această bară de unelte. Aici se găsesc comenzi cum ar fi navigarea între fișierele sursă deschise la un moment dat, comenzi de lansare în execuție a aplicației, comenzi rapide care comentează anumite porțiuni de cod, comenzi care permi salvarea unui anumit fișier sau a tuturor fișierelor deschise la un moment dat, comenzi care permit selecția anumitor configurări și multe astfel de comenzi.

II.1 Crearea unui proiect nou

Pentru a crea un proiect nou o putem face accesand comanda New Project din zona de comenzi rapide ale aplicației, sau din zona care conține bara de meniuri urmand succesiunea de comenzi File->New Project sau se poate folosi scurtătura de comenzi rapide prin apăsarea simultană a tastelor Ctrl+Shift+N [5]. Folosind oricare din variantele enumerate mai susvom deschide o fereastră care este prezentată mai jos în figura 2.1.1.

Această fereastră permite programatorului să selecteze o serie de opțiuni pe care acesta le dorește. Programatorul poate să stabilească locația pe hard-disk unde se va salva proiectul nou creat și de sa stabileasca numele pe care vrea să îl utilizeze pentru noul proiect. O alta optiune importanta este aceea de a permite utilizatorului sa-si aleaga ce tip de proiect vrea sa creeze. Prin tip de proiect se înțelege o combinație între destinația aplicației adică dacă aplicația va fi o aplicație desktop, un site, un API sau multe alte astfel de utilizări și limbajul de programare care va fi folosit pentru a implementa aceasta aplicatie (C#, Visual Basic, C, C++, F#, etc).

Figura 2.1.1 – Creare proiect nou

II.2 Aplicații de tip Windows Forms

Aplicațiile de tip Windows Forms [6] sunt aplicații foarte extinse cu implementare relativ simpla. Acest tip de aplicații pot fi implementate utilizându-ne de anumite controale predefinite în mediul de programare Visual Studio. Este foarte utila folosirea acestor controale, deoarece este o metoda foarte buna de a economisi timpul necesar pentru a le implementa.

Aplicațiile de tip Windows Forms pot să fie implementate folosind diferite limbaje de programare. Spre exemplu se poate crea o aplicație de tip Windows Forms care să folosească limbajul de programare Visual Basic, sau se poate crea o aplicație de tip Windows Forms care să utilizeze limbajul de programare C#.

O aplicație de tip Windows Forms se poate crea utilizând fereastra care pemite crearea de noi proiecte din care se selectează proiectul de tip Windows Forms.

Pentru utilizarea controalelor predefinite putem folosi Toolboxul pe care mediul de programare Visual Studio ni-l ofera. Acest toolbox este prezentat mai jos în cadrul figurii 2.2.1. Aceste obiecte care sunt incluse în cadrul acestui toolbox se pot folosi pentru a crea interfețe utilizator. Pentru a utiliza aceste controale, trebuie ca să se efectueze o operațiune de drag and drop, adică cu ajutorul mouse-ului se trag controalele de care este nevoie pe aplicația Windows Forms care se dorește a fi creată. Se pot crea în acest fel interfețe utilizator complexe care să rezolve orice cerințe de proiectare impuse.

Figura 2.2.1. – Toolbox

În continuare va voi prezenta o fereastră de aplicație de tipul Windows Forms ,folosită și pentru aplicația care se va implementa în continuare în cadrul acestei lucrări de licență., vom avea un formbox simplu, needitat, dupa cum se vede in figura 2.2.2.

Figura 2.2.2 – Formbox initial

Pentru a-l edita, vom da click dreapta pe el si vom alege optiunea “Properties”, moment in care ne va aparea pe ecran bara de proprietati, dupa cum putem observa in figura 2.2.3.

Figura 2.2.3- Properties

In continuare, pentru a edita formbox-ul , vom modifica valorile unor atribute, cum ar fi : BackColor- atribut ce da culoarea de background a formbox-ului, FormBorderStyle – atribut initial la None atunci când nu există elemente de margine sau când există doar elemente ca un meniu de control sau butoane de minimizat sau maximizat; FixedSingle pentru margini cu mărime fixă; Sizable (default) pentru margine ajustabilă; Fixed3D pentru margine cu mărime fixă care include o muchie dublă. In cazul de fata ii vom modifica valoarea in “FixedSingle”, MinimizeBox- atribut care dacă este Adevărat (default), butonul de minimizare apare pe formă în timpul utilizării,iar dacă este Fals, utilizatorul nu poate minimiza fereastra formei. In cazul de fata, ii vom seta valoarea “False”; MaximizeBox- atribut care dacă este True (default), butonul de maximizare apare pe formă în timpul utilizării, iar dacă este Fals, utilizatorul nu poate maximiza fereastra formei, in cazul de fata ii lasam valoarea “False”, precum si alte attribute ca ShowIcon, Size si Text. In urma modificarii tuturor acestor aribute, vom avea o prima imagine cu formbox-ul nostrum, care va arata ca in figura 2.2.4., prezentata mai jos:

Pentru a putea lasa aceasta aplicatie, vom introduce in continuare un buton de start, iar aplicatia va capata forma, precum puteti observa in figura 2.2.5, de mai jos.

Figura 2.2.5 – Play Button

Pentru a face posibil acest lucru, ne vom utiliza de controlul “button” din toolbox, din partea stanga a ecranului, creand un buton nou prin procedura Drag and Drop. Apoi ii vom modifica atributele de marime, text si nume, facandu-l sa arate ca in figura 2.2.5.

In continuare, vom adauag 6 label-uri din toolbox, pe care le vom numi Letter1, Letter2, etc. La text vom modifica in “A” si le vom repozitiona, facandu-le sa arate ca in figura 2.2.6.

Figura 2.2.6- Label

Apoi vom adauga inca un buton, care va fi folosit la sublinierea literelor, astfel invat vom trebui sa ii modificam unele valori ale atributelor, Enabled: False,FlatStyle: FlatSize: 48,2.

Vom crea 5 copii ale acestui buton si le vom repozitiona sub litere, iar in continuare vom crea un nou buton, caruia ii vom reda textul “Wrong Guesses” si pe care il vom repozitiona in partea stanga jos a aplicatiei, urmand sa avem o interfata ca cea din figura 2.2.7.

Limbajul de programare VISUAL BASIC

III.1. Tipuri de date in Visual Basic

În cadrul capitolului acesta va voi prezenta unele noțiuni introductive din limbajul de programare Visual Basic, modurile în care initializam o variabilă în limbajul de programare Visual Basic, precum si principalele structuri iterative sau decizionale și principalii operatori de comparare, de care ne vom folosi ulterior pentru a implementa aplicatia de tip joc. În continuare se vor prezenta principalele tipuri de date numerice, alaturi de tipul datei, spațiul de memorie pe care acest tip de dată este reprezentat și domeniul de valori. Pentru o vizualizare mai ușoară s-au reprezentat aceste tipri de date numerice într-o formă tabelară. .

Tabel 3.1 – Tipuri de date numerice

Aceste date sunt de tip numeric, dar exista si date non numerice in cadrul limbajului de programare Visual Basic, prezentate in tabelul 3.2.

Modul de lucru cu variabile în cadrul Limbajulul de programare Visual Basic este prezentat în exemplul de mai jos. Se poate observa si modul în care se declara o variabilă de un anumit tip. Se poate observa de asemenea modul în care unei variabile de un anumit tip de dată i se poate asigna o valoare.

Dim Var1 as DataType

Var1 = Expresie

Tabel 3.2– Tipuri de date non numerice

Al treilea tip de date prezentat sunt datele de tip literale, prezentate in tabelul 3.3.

Tabel 3.3 – Date literale

III.2 Lucrul cu variabilele in Visual Basic

In Visual Basic, variabilele sunt arii alocate de catre computer pentrua stoca datele. Fiecare variabila trebuie denumita. Pentru a denumi o variabila in Visual Basic, trebuie urmate o serie de reguli.

Numele variabilelor

Regulile pentru setarea numelor variabilelor sunt urmatoarele:

– trebuie sa fie mai scurte de 255 de caractere

– nu este permisa existența spațiilor in nume

– nu este permis ca numele variabilei sa inceapa cu un numar

b) Declararea variabilelor

In Visual Basic, variabilele trebuie declarate inainte de folosire, prin alocarea numelui și tipului variabilei. Variabilele se pot declara implicit sau explicit.

De exemplu, suma=text1.text inseamna ca variabila suma este declarata implicit și pregatita sa primeasca un semnal de la casuța de dialog Text1.

Pentru declararea explicita,variabilele sunt declarate in secțiunea generala de cod, folosindu-se comanda Dim.

Dim variableName as DataType

Exemplu: Dim parola As String

Dim total As Integer

Dim date As Date

Atribuirea de valori variabilelor

Dupa declararea variabilelor folosind declarația Dim, putem aloca valori acelor variabile.Forma generala a unui asign este:

Variabila = Expresie

Variabila poate fi o expresie matematica, un numar, un string, o valuare booleana etc. Exemple:

primulNumar = 100

numeUtilizator = „Carmina Ciupa”

Label1.Visible = True

III.3 . Operatori condiționali

În continuarea acestei lucrări va voi prezenta principalii operatori folosiți pentru lucrul cu variabilele. Operatori se pot clasifica în principiu în două categori și anume: operatori conditionali și operatori logici. Operatorii condiționali sunt prezentați în tabelul 3.1, iar operatorii logici sunt prezentați în tabelul 3.2. .

Tabel 3.1 – Operatori condiționali

III.4 Operatori logici

In Visual Basic se folosesc și cațiva operatori logici. Aceștia sunt descriși in tabelul de mai jos:

Tabel 3.2 – Operatori logici

III.5 Structurile decizionale „If…..Then…..Elseif….Else” cu operatori

Voi continua sa va prezint cateva structuri iterative, respectiv structuri decizionale care pot să fie întâlnite în cadrul acestui limbaj de programare.

Pentru un control eficient al funcționarii programului Visual Basic, trebuie folosite declarațiile „If…Then…Elseif…Else” impreuna cu operatori logici și operatori condiționali.

Formatul general pentru declarația „If…Then…Elseif…Else” este redat mai jos:

If condiție Then

Visual Basic – expresie

Elseif

Visual Basic – expresie

Else

Visual Basic – expresie

End If

III.6 Declarația „Select Case …. End Select” .

Pentru mai multe declarații condiționale este mai bine a se folosi declarația Select Case. Prin folosirea declarațiilor „If…Then…Elseif…Else” s-ar crea un șir lung de declarații de program, greu de urmarit. [5]

Structura acestei declarații e descrisa mai jos:

Select Case descriere

Case Value1

Una sau mai multe declarații Visual Basic

Case Value2

Una sau mai multe declarații Visual Basic

Case Value

Una sau mai multe declarații Visual Basic

Case Value

Una sau mai multe declarații Visual Basic

End Select

IV.1 Introducere in functiile Visual Basic

Funcțiile sunt similare cu procedurile normale, dar au scopul de a accepta anumite intrari și de a returna o valoare care este mai apoi pasata secvenței principale pentru terminarea executarii programului. Sunt doua tipuri de funcții: funcțiile build-in (funcții interne) și funcțiile create de programatori.

Formatul general al unei funcții este:

FunctionName (argumente)

Argumentele sunt valori ce sunt pasate funcției.

Funcția MsgBox ()

Obiectivul funcției MsgBox este acela de a crea o fereastra pop – up și de a atenționa utilizatorul ca este nevoie de operarea unei comenzi prin apasarea unui buton inainte de a continua.

Formatul de MsgBox este descris cum urmeaza:

MsgDumneavoastra = MsgBox(Prompt, Style Value, Title)

Argumentele sunt explicate mai jos:

– Prompt: va afișa mesajul in fereastra de mesaj

– Style Values: determina ce fel de buton de comanda va aparea in fereastra de dialog

– Title: va afișa titlul in fereastra de mesaj.

Tabelul IV.1 Funcția MsgBox

Exemplu: mai jos este exemplificat crearea a trei butoane de comanda și a unei etichete:

Figura IV.2 Fereastra de dialog cu trei butoane și o eticheta

Private Sub Test_Click ()

Dim testmsg As Integer

testmsg = MsgBox(„Click to test”, 1, „Test message”)

If testmsg = 1 Then

Display.Caption = „Testare reusita”

Else

Display.Caption = „Testare nereusita”

End If

End Sub

Daca se da click pe buton, o fereastra de mesaj va aparea,ca cea din Figura 1.8. Cand se apasa „Ok”, mesajul „Testare reușita” va fi afișata, iar la apasarea butonului „Cancel” mesajul „Testare nereușita” va fi afișat.

Pentru a realiza ferestre de mesaj mai sofisticate, se pot adauga și icoane pe langa mesaj. Exista patru tipuri de icoane disponibile in Visual Basic, așa cum este aratat in tabelul 1.7

Tabelul IV.3 Mesaje și icoane folosite in Visual Basic

In acest exemplu, urmatoarea fereastra de mesaj va aparea:

Figura IV.4 Fereastra pop – up creata in Visual Basic

Funcția InputBox ()

Funcția InputBox() va afișa o fereastra de mesaj unde utilizatorul poate introduce o valuare sau un mesaj sub forma de text. Forma acestei funcții este:

MesajulMeu = InputBox(Prompt, Title, default_text,x-position, y-position)

MesajulMeu poate fi o variabila de mai multe tipuri, dar in mod uzual aceasta este declarata ca string, variabila care accepta intrari date de utilizator.

Argumentele sunt explicate mai jos:

– Prompt: Mesajul afișat in fereastra de intrare

– Title: Titlul in fereastra de intrare

– Default-text: Mesajul standard de afișat

– X-position și y-position: poziționarea in funcție de coordonate a casuței de dialog

Figura IV.4 Buton Ok

Procedura pentru butonul „Ok”:

Private Sub OK_Click ()

Dim userMsg As String

userMsg = InputBox („Care este mesajul dvs?”, Message Entry Form”, „Enter your message here”, 500, 700)

If userMsg<> „” Then

message.Caption = userMsg

Else

message.Caption = „No Message”

End If

End Sub

La apasarea butonului „Ok”, fereastra de dialog aratata in Figura 1.10 va aparea. Dupa ce utilizatorul introduce mesajul și apasa „Ok”, mesajul va fi afișat in fereastra,iar la apasarea butonului „Cancel”, mesajul afișat va fi „No message”.

Figura IV.5. Fereastra de dialog

IV.2 Matrici

Cand se lucreaza cu un singur element putem utiliza o singura variabila. Totuși, cand avem de utilizat o lista de elemente asemanatoare, trebuie declarata o matrice de variabile in loc sa utilizam o variabila pentru fiecare element. De exemplu, daca trebuie sa introducem o suta de nume, in loc sa declaram o suta de variabile, putem declara o matrice.

Prin definiție, o matrice este un grup de variabile de același fel și cu același nume. Diferențierea fiecarui element din matrice se face prin folosirea subscripturilor, valoarea de index a fiecaruia, de exemplu nume (1), nume (2),nume (3) etc.

IV.2.1. Declararea matricilor

Putem folosi declarațiile „Public” sau „Dim” pentru a declara o matrice, in același mod in care declaram o variabila. Declarația „Public” declara o matrice ale carei variabile pot fi folosite in tot programul, global, in timp ce declarația „Dim” declara o matrice ale carei variabile pot fi folosite doar local.

Forma generala de declarare a unei matrici este urmatoarea:

Dim arrayNume (subs) as dataType

Public arrayNume (subs) as dataType

„Subs” indica indexul ultimului element din matrice,in loc de numarul elementelor din matrice. Aceasta se intampla deoarece Visual Basic asigneaza un index „0” primului element și nu „1”. De exemplu, Dim carte (9) va declara o matrice careare zece elemente: carte (0), carte (1), carte (2), carte (3), carte(4), carte (5), carte (6), carte (7), carte (8),carte (9).

Adițional, folosind Dim Count (100 to 500) ca Integer, va declara o matrice care consista in elemente incepand de la Count(100) și terminand la Count(500). [18]

Exemplu :

Dim studentName(10) as String

Dim num As Integer

Private Sub addName()

For num = 1 To 10

studentName (num) = InputBox („Introduceți nume student”, „Enter Name”,””,1500,4500)

If studentName (num) <>”” Then

Form1.Print studentName (num)

Else

End

End If

Next

End Sub

Private Sub Start_Click()

Form1.Cls

addName

End Sub

Programul de mai sus accepta date prin introducerea lor intr-o fereastra de dialog.De asemenea, acesta permite introducerea a zece nume o data, dupa apasarea butonului start.

Matricile multidimensionale sunt adesea necesare cand avem de facut programe mai complexe,in special cele cu un numar mare de date. Datele sunt de obicei aranjate in forme tabelare, iar aici se pot folosi matricile tabelare.

Forma de declarare a unei matrici multidimensionale este:

Dim arrayName (num1, num2) as dataType

unde num1 este sufixul primei dimensiuni (linii), iar num2 este sufixul celei de-a doua dimensiuni (coloane).

V. Elemente grafice

Funcțiile linie și forma (line and shape control) [11]

Elementele grafice sunt parți foarte importante din Visual Basic, deoarece o interfața prietenoasa și atractiva, va incanta utilizatorii. In Visual Basic sunt patru funcții de baza care se pot folosi pentru desenarea elementelor grafice in Visual Basic: funcția linie (line control), funcția forma (shape control), fereastra imagine (image box) și fereastra poza (picture box). [11]

Pentru a desena o linie dreapta, se da clic pe butonul de linie și apoi,in fereastra de desen, se deseneaza linia. Dupa ce se deseneaza aceasta linie, i se pot schimba și caracteristicile: culoare, grosime, și stil, folosindu-se declarațiile BorderColor, BorderWidth, Border Style.

La fel și in cazul desenarii unor forme. Forma standard este un dreptunghi, dar se pot alege și urmatoarele forme: cerc, oval, și dreptunghi cu unghiuri rotunjite, schimband valoarea property de la 0, cum e setata standard pentru dreptunghi, cu 1,2,3,4 sau 5. La fel ca și la linie, se pot seta mai multe caracteristici: culoare, grosime, stil.

Figura V.1. Ferestre pentru realizarea elementelor grafice

Funcțiile Image Box și Picture Box [12]

Funcțiile linie și forma sunt folositoare atunci cand trebuie desenate elemente simple. Pentru elemente mai complexe și pentru imbunatațirea afișajului interfeței, trebuie inserate imagini și desene proprii. In Visual Basic sunt definite doua funcții puternice pentru a realiza acest lucru: image box și picture box. [12]

Pentru a incarca o imagine sau o poza, se da clic pe butonul de „picture property” și va aparea o fereastra de control de unde utilizatorul va putea alege de unde sa incarce o imagine. De asemenea, se poate incarca o imagine folosind declarația LoadPicture() și codul urmator:

Image1.Picture = LoadPicture („C:\path name\picture file name”) or

picture1.Picture = LoadPicture („C:\path name\picture file name”)

De exemplu, urmatoarea declarație va incarca poza grape.gif in fereastra image:

Image1.Picture = LoadPicture („C:\My Folder\Visual Basic program\Images\grape.gif)

De asemenea, in Exemplu aratat, de fiecare data cand se va apasa butonul „change pictures”, se pot vedea 3 imagini. La fiecare apasare de buton aceste imagini se vor schimba. Programul folosește funcția Rdn pentru a genera variabile integer random și apoi folosește funcția „LoadPicture” pentru a incarca diferitele poze in fereastra.

Exemplu:

Dim a, b, c As Integer

Private Sub Command1_Click ()

Randomize Timer

a = 3 + Int (Rnd * 3)

b = 3 + Int (Rnd * 3)

c = 3 + Int (Rnd * 3)

If a = 3 Then

Image1 (0).Picture = LoadPicture ("C:\My Folder\VISUAL BASIC

program\Images\grape.gif")

End If

If a = 4 Then

Image1 (0).Picture = LoadPicture ("C:\My Folder\VISUAL BASIC

program\Images\cherry.gif")

End If

If a = 5 Then

Image1 (0).Picture = LoadPicture ("C:\My Folder\VISUAL BASIC

program\Images\orange.gif")

End If

If b = 3 Then

Image1 (1).Picture = LoadPicture ("C:\My Folder\VISUAL BASIC

program\Images\grape.gif")

End If

If b = 4 Then

Image1 (1).Picture = LoadPicture ("C:\My Folder\VISUAL BASIC

program\Images\cherry.gif")

End If

If b = 5 Then

Image1 (1).Picture = LoadPicture ("C:\My Folder\VISUAL BASIC

program\Images\orange.gif")

End If

If c = 3 Then

Image1 (2).Picture = LoadPicture ("C:\My Folder\VISUAL BASIC

program\Images\grape.gif")

End If

If c = 4 Then

Image1 (2).Picture = LoadPicture ("C:\My Folder\VISUAL BASIC

program\Images\cherry.gif")

End If

If c = 5 Then

Image1 (2).Picture = LoadPicture ("C:\My Folder\VISUAL BASIC

program\Images\orange.gif")

End If

End Sub

Figura V.2 Element grafic

Pentru crearea unui meniu de vizualizare și cautare a imaginilor din calculator este nevoie de funcțiile ComboBox, DriveListBox, TextBox, sa fie introduse in form-ul folosit.

– ComboBox: funcția aceasta afișeaza și valideaza selecția diferitelor tipuri de fișiere

– DriveListBox: permite selecția diferitelor partiții disponibile pe computer

– DirListBox: afișeaza directoarele partiției selectate

– TextBox: afișeaza fișierele selectate

– FileListBox: afișeaza fișierele disponibile

Coduri relevante trebuie scrise pentru a coordona funcțiile de mai sus ca aplicația sa funcționeze corespunzator. Programul trebuie sa urmeze urmatorul fir logic:

Pasul 1. Utilizatorul alege tipul de fișiere pe care vrea sa le afișeze

Pasul 2. Utilizatorul selecteaza partiția care conține fișierele

Pasul 3. Utilizatorul cauta in directoare și subdirectoare pana gasește fișierele dorite. Acestea ar trebui sa fie afișate in FileListBox.

Pasul 4. Utilizatorul selecteaza fișierele dorite și apasa butonul „Show”

Pasul 5. Utilizatorul parasește aplicația prin apasarea butonului „Exit”.

VI. Specificatii de functionare

În cadrul acestui capitol va voi prezenta principalele sepcificații de funcționare a aplicației de tip joc. Pe baza acestor specificații se va implementa logica de funcționare a aplicației de tip joc. De asemenea tot pe baza acestor specificații se va putea să se implementeze un process de testarea aplicației software.

Aplicația care trebuie să fie implementată este o aplicație software care trebuie să fie implementată utilizând mediul de programare Visual Studio și limbajul de programare Visual Basic. Aplicația care trebuie să fie implementată este un joc interactiv, intre utilizator si computer. Jocul creat trebuie să se desfăsoare pe o tabla, ca in figura VI.1.

Figura VI.1

Jocul consta in ghicirea cuvantului cheie, printr-o succesiune de introducere a literelor componente. El spune litere; de fiecare dată când ghicește o literă care apare în cuvânt, liniuța sau liniuțele corespunzătoare sunt înlocuite cu litera respectivă; dacă litera propusă de al doilea jucător nu se află în cuvânt, calculatorul desenează sub o spânzurătoare o parte a corpului; se începe cu capul și se continuă cu trunchiul, mâna stângă, mâna dreaptă, piciorul stâng și piciorul drept. Jocul se termină în cazul în care este ghicit întregul cuvânt sau este desenat întregul corp.

Pe parcursul jocului, spânzurătoarea ar arăta, succesiv, ca în imaginile următoare:

La sfarsitul jocului, in functie de reusita utilizatorului, acestuia i se va afisa un mesaj, in cazul in care a pierdut, dupa cum puteti observa si in figura VI.2, iar in cazul in care a reusit sa ghiceasca literele cuvantului in mai putin de 6 incercari( 6 etape necesare pentru a desena spanzuratoarea si a pierde), i se va afisa mesajul din figura VI.3.

Figura VI.2 Figura VI.3

Pe tot parcursul jocului, in functie de reusita sau esecul literei, calculatorul retine in stanga jos literele deja utilizate, in butonul cu textul „Wrong Guesses”., dupa cum puteti oserva in figura VI.4

Figura VI.4 – Wrong Guesses

De asemenea, pentru ca aceasta aplicatie a jocului este una de baza, am folosit un Listbox in care am introdus o serie de cuvinte pe care utilizatorul va trebui ulterior sa le ghiceasca, dar acest lucru a fost implementat in afara formboxului, nefiind vizibil in interfata jocului.

Capitolul VII. Implementarea aplicației

În cadrul acestui capitol se vor prezenta informații referitoare la- modul în care s-a implementat aplicația software. Se vor face scurte precizări asupra codului care a fost implementat pentru rezolvarea problemelor primate prin specificații.

VII.1 Interfața grafică a aplicației

Pentru început s-a creat un proiect de tipul Windows Forms Application utilizând mediul de programare Visual Studio. Acest proiect a fost creat utilizând pașii care au fost descriși mai sus în cadrul capitolului 2 care descrie modul în care se poate crea o aplicație de tipul Windows Forms.. Acest proiect conține inițial o fereastră goală, fereastră care va fi folosită pentru a implementa interfața utilizator a aplicației de tip joc prin utilizarea controalelor predefinite. Controalele care au fost folosite au fost accesate folosind fereastra Toolbox a mediului de programare Visual Studio.

Am folosit un buton , pe care l-am intitulat „Play”, care va fi folosit pentru resetarea tablei de joc, adică pentru aducerea jocului în poziția de început în care nici o litera nu este introdusa, iar spanzuratoarea nu este inca desenata.

6 controale de tip label. Aceste controale sunt folosite în principiu pentru a putea să se afișeze un text descriptiv. Aceste controale vor fi folosite în cadrul aplicației de față pentru afisarea literelor introduse de la tastatura de catre utilizator.

6 butoane folosite pentru a sublinia literele introduse de catre utilizator

Un buton „Wrong Guesses” in care se vor memora incercarile esuate ale utilizatorului

Un listbox in care vom introduce un program un sir de cuvinte pe care calculatorul le va memora si ulterior utilizatorul va trebui sa le ghiceasca, precum si un textbox.

Interfața grafică a acestei aplicații este prezentată mai jos în cadrul figurii VII.1 unde se pot vizualiza toate controalele despre care s-a vorbit mai sus.

Figura VII.1 – Interfata jocului

VII.2 Codul aplicatiei in Visual Basic

Pentru inceput, am creat o clasa de tip Public, denumita Form1, dupa cum urmeaza:

Public Class Form1

Dim Word As String //(va retine cuvantul care urmeaza sa fie ghicit)

Dim WordLength As Integer //(va retine lungimea cuvantului)

Dim Char1 As String // (va retine prima litera a cuvantului)

Dim Char2 As String //(va retine a doua litera a cuvantului)

Dim Char3 As String //(va retine a treia litera a cuvantului)

Dim Char4 As String //(va retine a patra litera a cuvantului)

Dim Char5 As String // (va retine a cincea litera a cuvantului)

Dim Char6 As String //(va retine a sasea litera a cuvantului)

Dim GameStarted As Boolean = False // isi va schimba valoarea in True, atunci cand utilizatorul apasa butonul Play

Dim RightTrys As Integer //va retine numarul de incercari reusite de ghicire a literelor

Dim WrongTrys As Integer //va retine numarul de incercari esuate de ghicire a literelor

Codul prezentat in continuare este folosit pentru a desena efectiv spanzuratoarea.

Public Sub DrawHanger()

Dim pnt As Graphics

pnt = Me.CreateGraphics

Dim pencil As New Pen(Color.Black, 2)

pnt.DrawLine(pencil, 46, 434, 115, 394)

pnt.DrawLine(pencil, 115, 394, 184, 434)

pnt.DrawLine(pencil, 115, 394, 115, 220)

pnt.DrawLine(pencil, 115, 220, 250, 220)

pnt.DrawLine(pencil, 250, 220, 250, 250)

End Sub

Pentru a restarta jocul, ne vom folosi de urmatoarea structura de cod:

Public Sub resetGame()

WrongGuessesLabel.Text = ""

Dim pnt As Graphics

pnt = Me.CreateGraphics

pnt.Clear(Color.FromArgb(0, 192, 0))

PlayButton.Visible = True

End Sub

Pentru a verifica daca utilizatorul a castigat jocul, vom apela urmatoarea structura de cod:

Public Sub CheckForWinning()

If RightTrys = WordLength Then

MsgBox("You Won")

resetGame()

End If

End Sub

De fiecare data cand utilizatorul va introduce o litera gresita, prin urmatoarea structura de cod computer-ul va desena cate un membru din spanzuratoare, in functie de numarul de incercari gresite ( la prima incercare se deseneaza capul, la a doua mana stanga, samd.)

Public Sub StartDrawingWhenLosing(ByVal trys As Integer)

Dim pnt As Graphics

pnt = Me.CreateGraphics

Dim pencil As New Pen(Color.Black, 2)

If trys = 1 Then

pnt.DrawEllipse(pencil, 228, 250, 40, 40)

ElseIf trys = 2 Then

pnt.DrawLine(pencil, 248, 290, 248, 370)

ElseIf trys = 3 Then

pnt.DrawLine(pencil, 248, 315, 213, 293)

ElseIf trys = 4 Then

pnt.DrawLine(pencil, 248, 315, 283, 293)

ElseIf trys = 5 Then

pnt.DrawLine(pencil, 248, 369, 213, 391)

ElseIf trys = 6 Then

pnt.DrawLine(pencil, 248, 369, 283, 391)

TextBox1.Clear()

Try

Letter1.Text = Char1

Letter2.Text = Char2

Letter3.Text = Char3

Letter4.Text = Char4

Letter5.Text = Char5

Letter6.Text = Char6

Catch ex As Exception

End Try

MsgBox("You Lose")

resetGame()

End If

End Sub

Pentru a afla cate litere are cuvantul ce urmeaza a fi ghicit, vom apela urmatoarea structura de cod: Public Sub ShowLength(ByVal VisibleLines As Integer)

hideCharachterLength()

If VisibleLines = 1 Then

Line1.Visible = True

ElseIf VisibleLines = 2 Then

Line1.Visible = True

Line2.Visible = True

ElseIf VisibleLines = 3 Then

Line1.Visible = True

Line2.Visible = True

Line3.Visible = True

ElseIf VisibleLines = 4 Then

Line1.Visible = True

Line2.Visible = True

Line3.Visible = True

Line4.Visible = True

ElseIf VisibleLines = 5 Then

Line1.Visible = True

Line2.Visible = True

Line3.Visible = True

Line4.Visible = True

Line5.Visible = True

ElseIf VisibleLines = 6 Then

Line1.Visible = True

Line2.Visible = True

Line3.Visible = True

Line4.Visible = True

Line5.Visible = True

Line6.Visible = True

End If

End Sub

In final, vom verifica daca in urma jocului, utilizatorul a castigat sau nu, apeland urmatoarea structura de cod:

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

If GameStarted = True Then

If TextBox1.Text = "" Then

Else

If TextBox1.Text.ToUpper.Contains(Char1) And Letter1.Text = "" And Char1 <> "" Then

Letter1.Text = Char1

RightTrys += 1

CheckForWinning()

ElseIf TextBox1.Text.ToUpper.Contains(Char2) And Letter2.Text = "" And Char2 <> "" Then

Letter2.Text = Char2

RightTrys += 1

CheckForWinning()

ElseIf TextBox1.Text.ToUpper.Contains(Char3) And Letter3.Text = "" And Char3 <> "" Then

Letter3.Text = Char3

RightTrys += 1

CheckForWinning()

ElseIf TextBox1.Text.ToUpper.Contains(Char4) And Letter4.Text = "" And Char4 <> "" Then

Letter4.Text = Char4

RightTrys += 1

CheckForWinning()

ElseIf TextBox1.Text.ToUpper.Contains(Char5) And Letter5.Text = "" And Char5 <> "" Then

Letter5.Text = Char5

RightTrys += 1

CheckForWinning()

ElseIf TextBox1.Text.ToUpper.Contains(Char6) And Letter6.Text = "" And Char6 <> "" Then

Letter6.Text = Char6

RightTrys += 1

CheckForWinning()

Else

WrongTrys += 1

StartDrawingWhenLosing(WrongTrys)

WrongGuessesLabel.Text = WrongGuessesLabel.Text & " " & TextBox1.Text

End If

End If

Else

End If

TextBox1.Text = ""

End Sub

End Class

VII.3 Codul aplicatiei in Java

Pentru inceput, cream o clasa de tip Public, pe care o denumim Hangman.

import java.util.*;

public class Hangman {

Pentru inceput. Vom folosi niste variabile de clasa:

private static String [] words = // calculatorul alege cuvantul secret din urmatoarea lista ;

{"geography", "cat", "yesterday", "java", "truck", "opportunity",

"fish", "token", "transportation", "bottom", "apple", "cake",

"remote", "pocket", "terminology", "arm", "cranberry", "tool",

"caterpillar", "spoon", "watermelon", "laptop", "toe", "toad",

"fundamental", "capitol", "garbage", "anticipate", "apple"};

In continuare vom folosi niste variabile de instanta:

private String secretWord; // cuvantul secret ales

private ArrayList<Character> correctLetters; // incercarile corecte

private ArrayList<Character> incorrectLetters; // incercarile gresite

private Scanner stdin = new Scanner(System.in);

Apoi, vom introduce un constructor.

public Hangman() {

//STERGE LINIA DE MAI JOS ODATA CE TESTAREA S-A INCHEIAT

this.secretWord = "miscellaneous";

//Alege random un cuvant din lista de cuvinte

//Random randIndex = new Random();

//int index = randIndex.nextInt(Hangman.words.length);

//this.secretWord = Hangman.words[index];

this.correctLetters = new ArrayList<Character>();

for (int i = 0; i < this.secretWord.length(); i++)

this.correctLetters.add('_');

this.incorrectLetters = new ArrayList<Character>();

}

Prin intermediul codului prezentat in continuare utilizatorul se joaca pana cand ghiceste cuvantul, sau pana epuizeaza numarul de incercari de a ghici literele cuvantului.

public void playGame() {

while (!gameOver()) {

//deseneaza imaginea completa a spanzuratorii

printHangman();

//Printeaza incercarile reusite din cuvantul de ghicir

for (int i = 0; i < this.correctLetters.size(); i++)

System.out.print(this.correctLetters.get(i) + " ");

//Printeaza literele incorecte care au fost deja ghicite

System.out.print("\nWrong letters: ");

for (int i = 0; i < this.incorrectLetters.size(); i++)

System.out.print(this.incorrectLetters.get(i) + " ");

//Trece la urmatoarea incercare

System.out.print("\nEnter a lower-case letter as your guess: ");

String guess = stdin.nextLine();

handleGuess(guess.charAt(0));

}

System.out.println("The secret word was: " + secretWord);

if (gameWon()) {

System.out.println("Congratulations, you won!");

} else {

System.out.println("Sorry, you lost.");

printHangman();

}

}

/**

handleGuess

Daca litera ghicita(parametrul ch) se afla in sirul de litere din cuvant, anunta utilizatorul si o adauga la sir, in caz contrar anunta utilizatorul si o adauga la lista de incercari gresite

*/

private void handleGuess(char ch) {

}

/**

* gameWon

*Returneaza valoarea true daca utilizatorul a castigat, in caz contrar returneaza valoarea false

*

*/

private boolean gameWon() {

return false;

}

/**

* gameLost

*

* Returneaza valoarea true daca utilzatorul a pierdut, altfel returneaza valoarea false

*

*/

private boolean gameLost() {

return false;

}

/**

* gameOver

*

* Returneaza valoarea true in cazul in care utilizatorul a castigat sau a pierdut, altfel returneaza valoarea false

private boolean gameOver()

{ return false;

}

printHangman

*

* deseneaza spanzuratoarea progresiv, in functie de numarul de incercari gresite

*

* @param numWrong num- numarul de incercari gresite de pana acum

*/

private void printHangman() {

int poleLines = 6; //

System.out.println(" ____");

System.out.println(" | |");

int badGuesses = this.incorrectLetters.size();

if (badGuesses == 7) {

System.out.println(" | |");

System.out.println(" | |");

}

if (badGuesses > 0) {

System.out.println(" | O");

poleLines = 5;

}

if (badGuesses > 1) {

poleLines = 4;

if (badGuesses == 2) {

System.out.println(" | |");

} else if (badGuesses == 3) {

System.out.println(" | \\|");

} else if (badGuesses >= 4) {

System.out.println(" | \\|/");

}

}

if (badGuesses > 4) {

poleLines = 3;

if (badGuesses == 5) {

System.out.println(" | /");

} else if (badGuesses >= 6) {

System.out.println(" | / \\");

}

}

if (badGuesses == 7) {

poleLines = 1;

}

for (int k = 0; k < poleLines; k++) {

System.out.println(" |");

}

System.out.println("__|__");

System.out.println();

}

Apelam metoda publica main:

public static void main(String [] args) {

Hangman game = new Hangman();

Testam constructorul:

System.out.println("The CONSTRUCTED game is:\n" + game);

System.out.println("\n======== END CONSTRUCTOR TEST ========\n");

Testam metoda gamewon:

if (game.gameWon())

System.out.println("Game should not be won at beginning");

String str = "miscellaneous";

game.setCurrentWord(str);

ArrayList<Character> guesses = new ArrayList<Character>();

for (int i = 0; i < str.length(); i++)

guesses.add(str.charAt(i));

game.setCorrectLetters(guesses);

if (!game.gameWon()) {

System.out.println(game);

System.out.println("Game should be won");

}

for (int i = 0; i < str.length(); i += 3)

guesses.set(i, '_');

game.setCorrectLetters(guesses);

if (game.gameWon()) {

System.out.println(game);

System.out.println("Game should NOT be won");

}

System.out.println("\n======== END gameWon TEST ========\n");

Testam gamelost:

game = new Hangman(); // incepem un joc nou

if (game.gameLost())

System.out.println("Game should not be lost at beginning");

game.setBadGuesses(3);

if (game.gameLost()) {

System.out.println(game);

System.out.println("Game should not be lost");

}

game.setBadGuesses(7);

if (!game.gameLost()) {

System.out.println(game);

System.out.println("Game should be lost");

}

game.setBadGuesses(10);

if (!game.gameLost()) {

System.out.println(game);

System.out.println("Game should be lost");

}

System.out.println("\n======== END gameLost TEST ========\n");

// */

Testam handleGuess:

game = new Hangman(); // incepem un joc nou

System.out.println(game);

game.handleGuess('a'); // verificam o litera din cuvamt

System.out.println(game);

game.handleGuess('q'); // check a letter not in the word

System.out.println(game);

game.handleGuess('m'); //verificam prima litera din cuvant

System.out.println(game);

game.handleGuess('l'); // verificam numarul de aparitii al unei litere in cuvant

System.out.println(game);

game.handleGuess('s'); // verificam ultima litera din cuvant

System.out.println(game);

game.handleGuess('x'); //

System.out.println(game);

System.out.println("\n======== END handleGuess TEST ========\n");

Pentru a incepe un joc nou:

game = new Hangman(); \

game.playGame();

}

}

VIII.Concluzii

În cadrul acestei lucrări v-am prezentat modul în care se poate implementa o aplicație de tip joc utilizând mediul de programare Visual Studio împreună cu limbajul de programare Visual Basic precum si o paralela cu implementarea aplicatei in limbajul de programare Java. De asemenea am prezentat modul în care se poate porni de la un set de specificații și se poate împlementa o aplicație care să rezolva cerințele de specificații impuse. Ba mai mult, am prezentat și detaliat soluțile găsite și arhitectura folosită și care au fost folosite pentru implementarea soluției pentru problemele primite prin intermediul specificațiilor.

Scopul acestei lucrări a fost reprezentat de prezentarea mediului de programare Visual Studio și a limbajului de programare Visual Basic. S-au prezentat câteva aspecte referitoare la facilitățile pe care pe care mediul de dezvoltare Visual Studio le pune la dispoziția programatorului și s-au exemplificat o parte a acestor facilități prin intermediul unor exemple. De asemenea s-au prezentat anumite particularități ale limbajulul de programare Visual Basic, anumite structuri iterative și decizionale precum și lucrul cu aceste structuri. În finalul acestei lucrări s-a dezvoltat o aplicație de tip joc utilizând mediul de programare Visual Studio și limbajul de programare Visual Basic. Această aplicație reprezintă un studiu de caz unde au fost evidențiate cunoștințele care au fost dobândite în ceea ce privește utilizarea acestui limbaj de programare.

După cum s-a arătat în cadrul acestei lucrări, aplicațiile dezvoltate în Visual Studio și care sunt de tipul Windows Form Application sunt ușor de implementat datorită faptului că pentru implementarea lor se pot folosi controale predefinite. Acest tip de aplicație poate să fie folosită pentru rezolvarea unei probleme impusă prin specificații care poate să aibă diferite grade de dificultate și care trebuie să modeleze o anumită parte de realitate (pentru studiul de caz este vorba despre tabla de șah și despre jetoanele jucătorilor).

Visual Studio este un mediu de dezvoltare care se pretează foarte bine pentru dezvoltarea aplicațiilor de tip desktop și nu numai. În cadrul acestei lucrări s-a prezentat modul în care se poate crea un proiect, care poate să fie de mai multe tipuri, reusindu-se astfel să se rezolve practic orice problemă care trebuie să fie soluționată. Se pot crea proiecte care să ruleze ca și aplicații desktop, se pot crea proiecte care să ruleze ca și aplicații WEB, se pot crea biblioteci de funcți sau multe astfel de exemple de proiecte utilizând acest mediu de programare.

Acest proiect de licența a fost unul interesant din mai multe puncte de vedere.

În primul rând a fost o provocare pentru mine, inițial neavând foarte multe noțiuni despre programarea jocurilor pe calculator.

În al doilea rând am gasit satisfacție în ceea ce am realizat. Această aplicație poate reprezenta un prim pas în posibila mea carieră de dezvoltator.

Aplicația, in stadiul în care se află, nu se compară cu aplicațiile de mare succes. De aceea este necesara dezvoltarea și îmbunătățirea ei, precum și adaptarea acesteia la cerințele utilizatorului.

Pe viitor, mi-am fixat un obiectiv personal în vederea continuării dezvoltării acestei aplicații, implementarea unor noi idei și refacerea graficii.

Mi-aș dori dezvoltarea unor jocuri educative pentru copii și a unor jocuri pentru invațarea limbilor straine.

Bibliografie

[1] Neil Smyth, Visual Basic Essentials, Techotopia, ISBN-10 : B00439H0FM [2012]

[2] Patrice Pelland, Microsoft Visual Basic 2008 Express Edition: Build a Program Now!, Microsoft Press, ISBN-10 : 812033504X [2008] [3] Wikipedia, Visual Basic, [08.04.2012]

[3] Matthew MacDonald, Visual Basic 2005: A Developer's Notebook, O'Reilly Media, ISBN-10 : B00439H0FM [2005]

[4] Sean Campbell, Scott Swigart, Kris Horrocks, Derek Hatchard, Peter Bernhardt, Introducing Microsoft Visual Basic 2005 for Developers, Microsoft Press, ISBN-10 : 073562058X [2005]

[5] Anne Boehm, Murach's Visual Basic 2012, Murach, [2012]

[6] Michael Halvorson,Start Here! Learn Microsoft Visual Basic 2012, Microsoft Press , [2012]

[7] Sandor Kovacs, Programarea interfetelor cu Visual Basic 6.0 – elemente speciale, Editura Albastra, ISBN 973-650-076-4, [18.08.2009]

[8] Online Tutorials, [ http://www.onlinetutorials.de/programmierung/buch-visual-basic/]

[9] Michael Halvorson, Microsoft Visual Basic 6.0 – Schritt für Schritt, Microsoft Press Deutschland, ISBN-13: 9781595672519, ISBN-10: 15534592514 [10.05.2012]

[10] Dominique Maniez, Visual Basic 6.0 : Guide du programmeur, Édition : Dunod, ISBN10 : 2100072331- ISBN13 : [anonimizat] [10.05.2013]

[11] John Clark Craig, Jeff Webb, Atelier Visual Basic 6.0, Édition : Dunod,ISBN10 : 2840828588- ISBN13 : 9782840828587, [01.03.2011]

[12] Greg Perry, Le programmeur Visual Basic 6, Édition : Campus Press , ISBN10 : 2744017957- ISBN13 : 9782744017957, [05.04.2010]

[13] Kit de Formation Microsoft Visual Basic 6.0, Microsoft Corporation, Édition : Dunod, ISBN10 : 284082549X- ISBN13 : 9782840825494 [12.04.2013]

[14] Horia Dumitrascu, Sa invatam Basic, Editura Albatros, ISBN10 : 5643017957- ISBN13 : 34784017957, [01.02.2000]

[15] Lucian Vasiu, Aplicatii in Q Basic, Editura Tehnica, ISBN10 : 980017957- ISBN13 : 0045644017957, [05.08.1999]

[16] Felicia Ionescu, Baze de date relationale si aplicatii, Editura Tehnica, ISBN10 : 9521017957- ISBN13 : 222744017957, [01.03.2004]

[17] Microsoft Visual Basic 6.0 – Ghidul Programatorului, Editura Teora, ISBN10 : 6544055957- ISBN13 : 7682884017957, [25.02.2008]

[18] Finaru Luminita Brav, Visual Basic primii pasi … si urmatorii, Editura Polirom, ISBN 556-679-462-3, [30.09.2001]

[19] Francesco Balena, Programming Microsoft Visual Basic 6.0, Microsoft Corporation, ISBN10 : 2744543957- ISBN13 : 9782778917957 , [15.05.2011]

[20] Michael Halvorson, Microsoft Visual Basic 6 Deluxe Learning Edition, Microsoft Press, ISBN10 : 2744017890- ISBN13 : 978984017957 ,[02.06.2012]

[21] Liew Voon Kiong, Visual Basic 6.0 Made Easy, [09.05.2013]

[22] Wikipedia, Visual Basic, [08.04.2012]

[23] Visual Basic 6 für Dummies, Taschenbuch: 480 Seiten ,Editura: Wiley-VCH Editura GmbH & Co. KGaA; Auflage: 1. Auflage (1. Januar 2012), ISBN-10: 3527700919 ,ISBN-13: 978-3527700912, [01.01.2 012]

[24] Simply Visual Basic ,Paul Deitel, H.M Deitel, and G. J. Aye [2008]

[25] So You Want to Learn to Program? – Programming With BASIC-256, James M. Reneau [01.11.2010]

[26] Using Visual Basic 6 , Hakan Kirik [2010]

Similar Posts