Playing cards: Difference between revisions
Content added Content deleted
(javascript version) |
(added BASIC) |
||
Line 223: | Line 223: | ||
Example output:<br> |
Example output:<br> |
||
((King OF Clubs), (6 OF Hearts), (7 OF Diamonds), (Ace OF Hearts), (9 OF Spades), (10 OF Clubs), (Ace OF Spades), (8 OF Clubs), (4 OF Spades), (8 OF Hearts), (Jack OF Hearts), (3 OF Clubs), (7 OF Hearts), (10 OF Hearts), (Jack OF Clubs), (Ace OF Clubs), (King OF Spades), (9 OF Clubs), (7 OF Spades), (5 OF Spades), (7 OF Clubs), (Queen OF Clubs), (9 OF Diamonds), (2 OF Spades), (6 OF Diamonds), (Ace OF Diamonds), (Queen OF Diamonds), (5 OF Hearts), (4 OF Clubs), (5 OF Clubs), (4 OF Hearts), (3 OF Diamonds), (4 OF Diamonds), (3 OF Hearts), (King OF Diamonds), (2 OF Clubs), (Jack OF Spades), (2 OF Diamonds), (5 OF Diamonds), (Queen OF Spades), (10 OF Diamonds), (King OF Hearts), (Jack OF Diamonds), (Queen OF Hearts), (8 OF Spades), (2 OF Hearts), (8 OF Diamonds), (10 OF Spades), (9 OF Hearts), (6 OF Clubs), (3 OF Spades), (6 OF Spades)) |
((King OF Clubs), (6 OF Hearts), (7 OF Diamonds), (Ace OF Hearts), (9 OF Spades), (10 OF Clubs), (Ace OF Spades), (8 OF Clubs), (4 OF Spades), (8 OF Hearts), (Jack OF Hearts), (3 OF Clubs), (7 OF Hearts), (10 OF Hearts), (Jack OF Clubs), (Ace OF Clubs), (King OF Spades), (9 OF Clubs), (7 OF Spades), (5 OF Spades), (7 OF Clubs), (Queen OF Clubs), (9 OF Diamonds), (2 OF Spades), (6 OF Diamonds), (Ace OF Diamonds), (Queen OF Diamonds), (5 OF Hearts), (4 OF Clubs), (5 OF Clubs), (4 OF Hearts), (3 OF Diamonds), (4 OF Diamonds), (3 OF Hearts), (King OF Diamonds), (2 OF Clubs), (Jack OF Spades), (2 OF Diamonds), (5 OF Diamonds), (Queen OF Spades), (10 OF Diamonds), (King OF Hearts), (Jack OF Diamonds), (Queen OF Hearts), (8 OF Spades), (2 OF Hearts), (8 OF Diamonds), (10 OF Spades), (9 OF Hearts), (6 OF Clubs), (3 OF Spades), (6 OF Spades)) |
||
=={{header|BASIC}}== |
|||
Most BASICs aren't object-oriented (or anything even resembling such) and can't do a deck of cards as a single cohesive unit -- but we can fake it. |
|||
<lang qbasic> |
|||
DECLARE SUB setInitialValues (deck() AS STRING * 2) |
|||
DECLARE SUB shuffle (deck() AS STRING * 2) |
|||
DECLARE SUB showDeck (deck() AS STRING * 2) |
|||
DECLARE FUNCTION deal$ (deck() AS STRING * 2) |
|||
DATA "AS", "2S", "3S", "4S", "5S", "6S", "7S", "8S", "9S", "TS", "JS", "QS", "KS" |
|||
DATA "AH", "2H", "3H", "4H", "5H", "6H", "7H", "8H", "9H", "TH", "JH", "QH", "KH" |
|||
DATA "AC", "2C", "3C", "4C", "5C", "6C", "7C", "8C", "9C", "TC", "JC", "QC", "KC" |
|||
DATA "AD", "2D", "3D", "4D", "5D", "6D", "7D", "8D", "9D", "TD", "JD", "QD", "KD" |
|||
RANDOMIZE TIMER |
|||
REDIM cards(51) AS STRING * 2 |
|||
REDIM cards2(51) AS STRING * 2 |
|||
setInitialValues cards() |
|||
setInitialValues cards2() |
|||
shuffle cards() |
|||
PRINT "Dealt: "; deal$(cards()) |
|||
PRINT "Dealt: "; deal$(cards()) |
|||
PRINT "Dealt: "; deal$(cards()) |
|||
PRINT "Dealt: "; deal$(cards()) |
|||
showDeck cards() |
|||
showDeck cards2() |
|||
FUNCTION deal$ (deck() AS STRING * 2) |
|||
'technically dealing from the BOTTOM of the deck... whatever |
|||
DIM c AS STRING * 2 |
|||
c = deck(UBOUND(deck)) |
|||
REDIM PRESERVE deck(LBOUND(deck) TO UBOUND(deck) - 1) AS STRING * 2 |
|||
deal$ = c |
|||
END FUNCTION |
|||
SUB setInitialValues (deck() AS STRING * 2) |
|||
DIM L0 AS INTEGER |
|||
RESTORE |
|||
FOR L0 = 0 TO 51 |
|||
READ deck(L0) |
|||
NEXT |
|||
END SUB |
|||
SUB showDeck (deck() AS STRING * 2) |
|||
FOR L% = LBOUND(deck) TO UBOUND(deck) |
|||
PRINT deck(L%); " "; |
|||
NEXT |
|||
PRINT |
|||
END SUB |
|||
SUB shuffle (deck() AS STRING * 2) |
|||
DIM w AS INTEGER |
|||
DIM shuffled(51) AS STRING * 2 |
|||
DIM L0 AS INTEGER |
|||
FOR L0 = 51 TO 0 STEP -1 |
|||
w = INT(RND * (L0 + 1)) |
|||
shuffled(L0) = deck(w) |
|||
IF w <> L0 THEN deck(w) = deck(L0) |
|||
NEXT |
|||
FOR L0 = 0 TO 51 |
|||
deck(L0) = shuffled(L0) |
|||
NEXT |
|||
END SUB |
|||
</lang> |
|||
Sample output: |
|||
<pre>Dealt: 7D |
|||
Dealt: 6D |
|||
Dealt: KD |
|||
Dealt: 8S |
|||
5D QH JC JH KC 3S QD 4D 9H 2C JD KH 7H 4H AD 7S 3D 2H 3H 5C 4S AS TD 7C QS 9S 9D |
|||
KS 8H 4C 6H 5H 5S 8D TC AH TS 9C 3C 8C TH 2D QC 6C AC 2S JS 6S |
|||
AS 2S 3S 4S 5S 6S 7S 8S 9S TS JS QS KS AH 2H 3H 4H 5H 6H 7H 8H 9H TH JH QH KH AC |
|||
2C 3C 4C 5C 6C 7C 8C 9C TC JC QC KC AD 2D 3D 4D 5D 6D 7D 8D 9D TD JD QD KD</pre> |
|||
=={{header|C}}== |
=={{header|C}}== |