例如:
做3的结果,就是:
3 12
1 3 2
12 3;
.....(同上)。
这样就ok。
你走入了一个误区。完全可以弄一个数组表示52张
Const PaiMian = "A234567890JQK"
Dim PuKeShuZu(51) As Integer
Dim HuaSe
'0到12为黑桃,13到25为红桃,26到38为梅花,39到51为方块
Private Sub Command1_Click()
'抽取两张扑克牌,并比较大小。
'规定:①A<2<3<4<5<6<7<8<9<10<J<Q<K②不同花色同数目为一样大
Dim x As Integer, y As Integer
Dim x0 As Integer, y0 As Integer
Dim x8 As String, y8 As String
Dim x9 As String * 2, y9 As String * 2
'x、y是数组下标,x0、y0是对应大小的顺序
'x8、y8是对应牌面的标记,x9、y9是对应牌的花色
x = Int(Rnd * 52)
'抽取第一张牌
Do
y = Int(Rnd * 52)
Loop Until y <>x
'抽取第二张牌。但模拟会发生与第一张一样的情况,实际上抽牌是不会发生的,所以要排除
x0 = x Mod 13
y0 = y Mod 13
'分别计算出两张牌的顺序号
x8 = PaiXudaoPaiMian(x0)
y8 = PaiXudaoPaiMian(y0)
'分别结算牌面标记
x9 = HuaSe(x \ 13)
y9 = HuaSe(y \ 13)
'计算两张牌的花色
Print "抽取的第一张牌是:"x9x8
Print "抽取的第二张牌是:"y9y8
'输出两张牌的情况
Print x9x8
Select Case Sgn(x0 - y0)
Case 0
Print "="
Case 1
Print ">"
Case -1
Print "<"
End Select
Print y9y8
'比较,并输出结果
End Sub
Private Function PaiXudaoPaiMian(a As Integer) As String
'按牌序换算出牌面
PaiXudaoPaiMian = Mid(PaiMian, a + 1, 1)
'读取对应的字符
If PaiXudaoPaiMian = "0" Then PaiXudaoPaiMian = "10"
'其中0表示的是10
End Function
Private Sub Form_Load()
HuaSe = Array("黑桃", "红桃", "梅花", "方块")
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)