按照某种理牌规则,先按纸牌点数从小到大整理,如果遇点数相同则再按花样♠♥♣◆(A~D)整理,约定俗成,点数3为最小纸牌,K(点数13)之后才是1,2为最大牌。
小催同学运用冒泡排序思想设计了一个去除大、小王后剩下的52张牌中随机抽取17张纸牌(在列表框1中显示),并按上述理牌规则模拟理牌,将理好的纸牌在列表框2中输出的程序。
程序运行界面如图所示。请回答以下问题:
Const n= 17
Dim s(1 To 17) As String
Private Sub FP_ Click( )
Randomize
For i=1 To n
s(i)= &. Int(Rnd * 13 + 1) '随机产生一张牌,注:A的ASCII码为65
For j=1 To i-1 '此程序段,检查产生的牌是否为重复牌
If s(i)=s(j) Then Exit For
Next j
If Then
i=i-1
Else
List1. AddItem s(i)
End If
Next i
End Sub
Private Sub LP_ Click( )
For i=1 To n-1
For j=n To i +1 Step -1
d1= Val(Mid(s(j),2)) 'Mid 函数的第3个参数(长度)省略,表示从第2位取到最后
d0= Val(Mid(s(j-1),2))
If Then '加框处改错
t=s(j) : s(j)=s(j-1) : s(j-1)=t
ElseIf d1=d0 Then
If Then
t=s(j) : s(j)=s(j-1) : s(j-1)=t
End If
End If
Next j
Next i
For i=1 To n
List2. AddItem s(i)
Next i
End Sub