Crearea Unui Joc de Blackjack In Labview
Labview: Blackjack
Pentru a crea un joc de blackjack in Labview s-au facut urmatoarele ajustari ale regulilor oficiale:
cartiile se vor alege la intamplare de la 1 la 11
jucatorul nu poate sa decida daca valoarea cartii AS este 1 sau 11
nu exista optiuni de split sau double
in caz de caștig valoarea pariului este returnata de doua ori
dealer-ul nu isi va afisa prima carte
jocul este destinat pentru un singur jucator
Avand stabilite aceste lucruri se începe construcția jocului prin crearea panoul frontal. Pentru acesta s-au folosit:
1 x Flat Box (aflat sub “Decorations”)
2 x File Path Control (“Express -> Text Controls” )
5 x Numeric Indicator (“Numeric”)
2 x Numeric Control (“Numeric”)
1 x 2D Picture (“Classic ->Classic Graph->Controls”)
1 x Horizontal Pointer Slide (“Numeric”)
1 x Push Button (“Boolean”)
4 x OK Button (“Boolean”)
2 x String Indicator (“String”)
1 x Round LED (“Boolean”)
1 x Horizontal Graduated Bar (“Numeric”)
*optional* 1 x Label (“Decorations”)
*optional* 1 x Free Frame (“Decorations”)
*optional* – utilizat doar pentru a oferi un aspect mai frumos
Rolul Flat Box-ului este de a mentine pozitia butoanelor si a celorlalte controalelor chiar si dupa inchiderea programului, astfel toate celelalte controale vor fi pozitionate in interiorul acesteia. Pentru a redimensiona Flat Box-ul se va face clic pe patratelul albastru din colt care apare odata ce se amplaseaza cursorul deasupra acestuia.
f
Fig 1.0 <Redimensionare Flat Box>
In cazul <File Path Control> singura modificare a fost modificarea etichetei (“Label”) care se face prin dublu clic pe aceasta. Acelasi lucru se va face si pentru cele 5 Numeric Indicator. (Pentru numele conferite verificati fig 1.9)
Fig 1.1 <Redenumire Label>
Pentru <Numeric Control> pe langa redenumirea etichetei se va seta si tipul de date utilizat precum si limitele admise. Pentru asta se face clic dreapta pe unul dintre Numeric Control -> Representation -> U64 (Unsigned Quad) iar pentru cel de al doilea se va alege U32 (Unsigned Long). Pentru a seta limitele de introducere a datelor se va face clic dreapta din nou -> Properties -> Data Entry dupa care se vor seta minimul,maximul si valoare cu care se face incrementarea. Pentru acest exemplu sau utilizat, pentru vi-ul cu U32: 17,21,1, iar pentru cel cu U64: 500,15000,50.
Fig 1.2 & 1.3 <Setarea tipului de date si a limitelor de introducere a datelor>
Pentru <2d Picture> nu sunt necesare modificari (dimensiunea acestuia poate fi modificata deoarece se va asigura redimensionarea imaginii in cadrul diagramei bloc) insa pentru un aspect frumos am ascuns eticheta (“Label”) facand: clic dreapta -> Properties->Appearance ->sub “Label” exista un buton visible pe care l-am debifat. Pentru<Horizontal Pointer Slide> pe langa nume va trebui setat si limitele de selectie prin dublu clic pe valoarea care doriti sa o modificati (nota: nu trebuie modificate decat valorile din capete, Labview ajustand mai apoi valorile intermediare).Mai trebuie setat si tipul de date utilizat pe U8 (Unsigned Byte <vezi fig 1.2>). Se seteaza si U16 petru <Horizontal Graduated Bar>.Tot aici Properties->Scale->Scale Range(min: 50 max:500).
Fig 1.4 & 1.5 & 1.6 <Ascundere Label,setare date selectie pentru er si setare Scale Range>
La <Push Button> este necesara modificarea “Mechanical Action” (Modului de functionare a butonului) astfel incat acesta sa fie “Switch when Pressed”. Pentru aceasta: clic dreapta pe buton-> Mechanical Action. Acelasi lucru va fi realizat si pentru cele 4 x <Ok button> cu mentiunea ca aici se va selecta “Latch when released”.
Fig 1.7 <Alegerea modului de actionare>
O ultima modificare consta din setarea textului afisat pe butoane. Se va face clic dreapta -> Properties -> Appearance sub Show Boolean Text. Acesta modificare se va realiza pentru cele 4 <OK button>, optional modificand din acelasi meniu culoarea textului pentru unul dintre butoane (care serveste ca si buton Quit).
Fig 1.8 <Setare text butoane>
Aspectul final si numele toturor controlelor este (dreptughiurile rosii sunt folosite pentru cenzura):
Fig 1.9 <Aspect panou frontal>
Pentru a incepe sa cream diagram block se va face clic pe meniul Window-> Show Block Diagram sau se va apasa tastele Ctrl+E. Controalele din front panel vor aparea si aici. Pentru moment amplasatile undeva unde sa nu va incomodeze si ignoratile. In total vor exista 4 sectiuni. Testarea pe parcurs nu este recomandata.
Pentru prima sectiune se vor insera:
1 x numeric Constant (“Numeric”)
2 x String Constant (“String”)
1 x Empty string Constant (“String”)
1 x Play Sound File (“Programming->Graphics&Sound->Sound->Output”)
11 x Property Node (“Programming->Aplication Control”)
2 x Unboundle by Name (“Programming->Cluster,Class&Variant”)
1 x False si 1 x True Constant (“Boolean”)
2 x Divide (“Numeric”)
1 x Search and Replace String (“String”)
Path-ul de la Background Music (cel din Front Panel)
1 x String Concatenation (“String”)
1 x Min & Max (“Comparation”)
1 x Path to String (“Programming->File I/O->Advance File Functions”)
1 x String to Path (“Programming->File I/O->Advance File Functions”)
1 x read PNG File (“Programming->Graphics&Sound->Graphic Formats”)
1 x Draw Flattened Pixmap (“Programming->Graphics&Sound->Picture functions”)
Pentru a conecta <Property Node> se face clic dreapta pe ele ->link to->pane->se alege controlul dorit. Propietatea dorita se alege din: clic dreapta->Select Property, iar pentru a seta intre modul read/write se face clic dreapta->Change All to Read/Write Mode (in funtie de modul in care va aflati).
Fig 2.1 & 2.2 <Schimbare mode pentru property node si link Property Node>
Fig 2.3 <Selectare propietate>
In cazul <Unboundle by Name> pentru a selecta ce urmeaza sa fie unboundle: dupa conectarea modulului se va face clic stanga pe propietate. Pentru a mai adauga un camp sa va trage de dreptunghiul din mijloc.
Fig 2.4 & 2.5 <Selectare date Unboundle by Name si adaugare de campuri>
Fig 2.6 <Conexiuni
prima sextiune>
Conectat
la sectiunea 4
Pentru cea de-a doua sectiune se vor folosi
3 x Case Structure (“Structures”)
1 x While/Event Structure (“Structures”)
Property Node (“Programming->Aplication Control”)
Multiply/Random Number/Round Towards +Infinity (“Numeric”)
Add/Devide (“Numeric”)
Less or equal/Equal/Greater (“Comparation”)
And/Or/Not (“Boolean”)
True Constant/Boolean to (0,1) (“Boolean”)
1 x Search and Replace String (“String”)
Current Card/Total/Hit Button (din Front Panel)
1 x Concatenate Strings (“String”)
1 x Min & Max (“Comparation”)
1 x Path to String (“Programming->File I/O->Advance File Functions”)
1 x String to Path (“Programming->File I/O->Advance File Functions”)
1 x read PNG File (“Programming->Graphics&Sound->Graphic Formats”)
1 x Draw Flattened Pixmap (“Programming->Graphics&Sound->Picture functions”)
String/Empty String/Numeric Constant (“Numeric/String”)
Aceasta sectiune contine o bucla cu registry de deplasare. Pentru a crea o astfel de bucla se conecteaza o constanta la o bucla while dupa care clic dreapta pe punctul de conexiune si “Replace with Shift Register”.
In cazul structurii cu evenimente pentru a alege evenimentul dorit: clic dreapta pe event si apoi “Edit Event Handled by this case…”
Fig 2.7 si 2.8<Creare bucla cu registry de deplasare si editare eveniment>
Conexiunile acestei sectiuni sunt:
*nota: vi-urile incercuite sunt amplasate aici pentru a nu le pierde.Ele nu sunt conectate*
Fig 2.9.1 <Conexiuni sectiune 2>
Fig 2.9.2 <Conexiuni sectiune 2>
Doar 2 dintre structurile case au ambele cazuri si anume cele 2 puse una in alta:
Fig 2.9.3 <Conexiuni section 2>
Fig 2.9.4 <Conexiuni section 2>
fdsdfg
A treia sectiune contine:
Property Node (“Programming->Aplication Control”)
False/True Constant (“Boolean”)
Bucla cu registry de deplasare
Add/Substract (“Numeric”)
Case/Event Structure (“Structure”)
Greater (“Comparation”)
Conexiunile acesteia sunt:
Fig 2.10.1 <Conexiuni sectiune 3>
Cazul False pentru structura case este:
Fig 2.10.2 <Conexiuni sectiune 3>
Cea de-a patra sectiune si ultima are o legatura cu sectiunea 1 si contine toate vi-urile mentionate mai sus la care se mai adauga:
Stop (“Programming->Aplication Control”)
Wait(ms) (“Timing”)
Modul de realizare a acestei sectiuni este:
Fig 2.11.1 <Conexiuni sectiune 4>
Fig 2.11.2 <Conexiuni sectiune 4>
Are 2 cazuri
Doar structura case marcata are 2 cazuri iar cazul True este:
Fig 2.11.3 <Conexiuni sectiune 4>
Fig 2.11.4 <Conexiuni sectiune 4>
2 cazuri
Fig 2.11.5 <Conexiuni sectiune 4>
Desi este lung programul nu este neaparat complicat. Multitudinea de componente face insa ca defectele sa fie mai greu de identificat; drept pentru care recomand utilizarea de probe pentru a elimina bug-urile din program.
Pentru a functiona inaintea simularii se va alege muzica de fundal (fisier .wav) si din cadrul unui fiser de imagini predefinit (numele sunt : 2 pana la 4 cifre + ref.png si empty.png) o imagine denumita ref.png.Denumirea imaginilor se face dupa logica: culoare,valoare carte + cifra de la 1 la 4 pentru carte 10 (10,J,Q,K au toate valoarea 10).Cartea AS va aparea de 2 ori ca si 1 dar si ca si 11. Empty.png si ref.png sunt spatele unei carti de joc respectiv o poza oarecare. Poza cu spatele unei carti va fi duplicata si pentru: 10,20,30 si 40.Toate poze au format png.
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Crearea Unui Joc de Blackjack In Labview (ID: 113072)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
