Older Version
Newer Version
Alyce
Jul 11, 2011
=Managing Cards=
[[user:Alyce|1310404623]]
[[toc|flat]]
----
=Arrays!=
Whether you are creating a card game with images from a DLL, with bitmap images, or a text game, you'll need a way to keep track of the status of the cards. Arrays provide a perfect way to do this.
=Single or Double?=
Consider using a double-dimensioned array, since it is the most flexible. The first dimension holds the index of the card and the second dimension holds information such as it's x location, y location, face-up/face-down status, disable/enabled status, in play/removed from play status, suit, color, value, etc.
=Creating the Array=
An array with two dimensions must be DIMmed. If you are using a 52-card deck, the first dimension will be 52. The second dimension size depends upon the game and its pertinent information. Let's create an example.
[[code format="lb"]]
dim deck$(52,6)
'deck$(x,1) : rank, A,2,3...J,Q,K
'deck$(x,2) : suit, hearts, spades, diamonds, clubs
'deck$(x,3) : side - face UP or face DOWN
'deck$(x,4) : in play Y or N
'deck$(x,5) : x location of upper left corner
'deck$(x,6) : y location of upper left corner
[[code]]
=Filling the Array=
We can use loops or nested loops to fill the array at the start of the game. Tge following code creates a string for the rank values. It then fills the array in a loop, using the word$() function on the string. It ends with a print routine so that we can check our work.
[[code format="lb"]]
dim deck$(52,6)
value$ = "A 2 3 4 5 6 7 8 9 10 J Q K "
for m = 1 to 4
rank$=rank$ + value$
next
for i = 1 to 52
deck$(i,1) = word$(rank$,i)
next
'check to see how it is filled:
for j = 1 to 52
print deck$(j,1)
next
[[code]]
You'd fill your arrays according to the specifications of the game under construction.
=Retrieving the Info=
You can retrieve the info in the same way it was printed in the example above.
[[code format="lb"]]
idx=32 'array index to query
cardRank$ = deck$(idx,1)
[[code]]
----
[[toc|flat]]