In this simple card trick, you choose a card from one of the 21 displayed. The computer will guess your chosen card simply by asking you in which column your card lies.

Dim Deck(52)
Dim DisplayCard(3, 7)
[CardMagic]
Call ShuffleDeck
Print "Choose a card. Don't tell me. Keep it a secret."
Print " "
Call DealColumns
For i = 1 to 3
Print " "
Input "In which column is your card now";col
Print" ": Print " "
Call ScoopColumns col
Call DealColumns
Next i
Print " ": Print " "
Print "Your secret card is the ";CardDesc$(DisplayCard(2, 4));"!"
Print " ": Print " "
Input "Play again";yn$
If Instr(Upper$(yn$), "Y") Then [CardMagic]
Cls
Print " ": Print " "
Print "Thank you for playing. Maybe you'll stump me next time. :)"
End
Sub ShuffleDeck
For i = 1 to 52
Deck(i) = i
Next i
For i = 52 to 2 Step -1
c = Int(Rnd(1) * i) + 1
temp = Deck(i)
Deck(i) = Deck(c)
Deck(c) = temp
Next i
End Sub
Sub ScoopColumns nCol
Select Case nCol
Case 1
c1 = 2
c2 = 1
c3 = 3
Case 2
c1 = 3
c2 = 2
c3 = 1
Case 3
c1 = 2
c2 = 3
c3 = 1
End Select
n = 0
For row = 1 to 7
n = n + 1
Deck(n) = DisplayCard(c1, row)
Next row
For row = 1 to 7
n = n + 1
Deck(n) = DisplayCard(c2, row)
Next row
For row = 1 to 7
n = n + 1
Deck(n) = DisplayCard(c3, row)
Next row
End Sub
Sub DealColumns
cls
Print "Magic Card Trick"
Print " "
col = 1
row = 1
For i = 1 to 21
DisplayCard(col, row) = Deck(i)
card$ = CardDesc$(DisplayCard(col, row))
Print Space$(25 - Len(card$));card$;
col = col + 1
If col = 4 Then
Print
col = 1
row = row + 1
End If
Next i
End Sub
Function CardDesc$(card)
pip$ = "Ace Deuce Three Four Five Six Seven " + _
"Eight Nine Ten Jack Queen King"
n = card mod 13
If n = 0 Then
n = 13
End If
n$ = Word$(pip$, n)
suit$ = "Spades Hearts Clubs Diamonds "
s = Int(card / 13) + 1
If card / 13 = Int(card / 13) Then
s = s - 1
End If
s$ = Word$(suit$, s)
CardDesc$ = n$;" of ";s$
End Function

## A Simple Card Trick

In this simple card trick, you choose a card from one of the 21 displayed. The computer will guess your chosen card simply by asking you in which column your card lies.