Gli operatori logici in Visual Basic Net? Li trovi su Opentraining.it Visual Basic Italia
Guide e Tutorials:indexed
Creare un gioco di carte

Chi non ha mai utilizzato i giochi di carte proposti da Microsoft come Hearts FreeCell e così via? Ognuno di essi utilizza le funzioni contenute nel file "CARDS32.DLL" nella versione a 32 bit e "CARDS.DLL" in quella un po' meno recente a 16 bit.
Quali sono queste funzioni? Come creare un gioco di carte facendone uso?
La prima funzione da prendere in considerazione è la cdtInit, utile ad inizializzare le carte che verranno poi utilizzate nel gioco.
Eccone la dichiarazione:

Declare Function cdtInit Lib "Cards32.Dll" (dx As Long, dy As Long) As Long

dove i parametri dx e dy rappresentano rispettivamente le dimensioni in lunghezza ed in altezza delle carte. Ecco perchè si parla di inizializzazione.
Omettere questi dati significa provocare un errore dell'API e dunque la chiusura dell'applicazione.
La seconda funzione da trattare è la cdtTerm che sarà utilizzata nel momento in cui il gioco verrà terminato. Richiamare questa funzione è importante in quanto libera la memoria precedentemente impiegata nel gioco.
La dichiarazione della funzione è la seguente:

Declare Function cdtTerm Lib "Cards32.Dll" () As Long

che come si vede chiaramente non prevede parametri. Tale funzione, come del resto quella vista poco prima, ritorna un intero a 32 bit.
Intero che sarà pari a 0 in caso di fallimento della funzione o diverso da zero in caso di successo.
Proseguendo nella lista delle funzioni necessarie troviamo due API molto simili tra di loro denominate rispettivamente cdtDraw e cdtDrawExt. Il loro scopo è quello di disegnare le carte sulla form o su un controllo PictureBox.
L'unica differenza che intercorre tra le due è che la cdDrawExt, come dice il nome (Extended) è un'estensione della cdDraw in quanto può essere utilizzata per disegnare carte di dimensioni differenti da utilizzare nello stesso gioco.
Vediamo innanzitutto la dichiarazione della cdtDrawExt:

Declare Function cdtDrawExt Lib "Cards32.Dll" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, _
ByVal dx As Long, ByVal dy As Long, ByVal ordCard As Long, ByVal iDraw As Long, ByVal clr As Long) _
As Long

E per finire ecco la dichiarazione della cdtDraw:

Declare Function cdtDraw Lib "Cards32.Dll" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, _
ByVal iCard As Long, ByVal iDraw As Long, ByVal clr As Long) As Long

Siccome queste ultime due funzioni sono le più ostiche da interpretare, sarà necessario analizzarne i parametri con maggiore dettaglio.

hdc Rappresenta il riferimento alla finestra (form o PictureBox) nella quale prenderanno posto le carte;
X E' la coordinata X espressa in pixel dell'estremo sinistro di una carta singola. Corrisponde alla proprietà Left di un oggetto;
Y E' la coordinata Y espressa in pixel dell'estremo superiore di una carta singola. Corrisponde alla proprietà Top di un oggetto;
iCard / ordCard E' un numero intero compreso tra 0 e 68 che indica quale carta del mazzo rappresentare. In particolare, indicando un numero tra 0 e 51 verrà rappresentata una delle 52 carte da gioco disponibili, dove 0 corrisponde all'asso di picche, 1 all'asso di quadri e così via. Indicando invece un intero tra 52 e 68 verranno visualizzate carte speciali da utilizzare in alcuni giochi;
dx Rappresenta la dimensione in termini di lunghezza della carta;
dy Rappresenta la dimensione in termini di altezza della carta;
iDraw E' un valore che rappresenta come visualizzare la carta da gioco. Bisognerà assegnare ad iDraw il valore 0 se si vuole visualizzare la parte anteriore della carta da gioco, o il valore 1 se se ne vuole visualizzare il retro. Se invece si sceglie il valore 2 si inverte i colori della carta
ctr Determina come la carta da gioco verrà colorata quando ne vengono invertiti i colori. Ad esempio si può pensare al caso di una carta selezionata: invertire i colori sarà utile all'utente per capire che quella carta è attiva al momento. Ogni colore può essere utilizzato (ad esempio vbWhite, vbRed, vbBlue e così via)

La struttura del gioco può essere agevolmente sviluppata in base alle proprie conoscenze di programmazione.

Archivio:ndexed
Lezioni Commenta questa lezione Invia la tua guida Avviso per le nuove lezioni
Proponi un argomento

Visual Basic Italia© copyright 2000 - tutti i diritti riservati
E-mail:
vbitalia@libero.it