Well, I am working on a program for playing cards, and I save the values ββof the cards as hexadecimal digits. Here is the array:
public int[] originalCards = new int[54] { 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x50, 0x51 };
The first digit refers to the suit (1 = blades, 2 = clubs; .... 5 = jokers) The second digit refers to the card number (1 = ace, 5 = 5; 13 = K, etc.).
I would like to do something like the following:
Pseudocode:
public int ReturnCard(int num) { int card = currentDeck[num]; int suit = card.firsthexdigit; int value = card.secondhexdigit; return 0; }
code>
I donβt need a new method for working with ints, I just included it for clarity.
Does anyone know how to do this in C #?
Edit: Ok, I use bit offset as described in one of the answers. I can get the second digit (suit) just fine, but the first digit keeps coming out as "0". Any idea why?
Edit: edit: ok, now great. Thanks guys.