永发信息网

vb编程 随机抽取两张扑克牌比大小不分花色 扑克图片的编号附

答案:3  悬赏:60  手机版
解决时间 2021-03-18 13:10
  • 提问者网友:情歌越听越心酸
  • 2021-03-18 03:12
扑克牌花色(1~4),A~K(0~12)或者(1~13)

关键是随机取数和比较大小程序写出来
最佳答案
  • 五星知识达人网友:雪起风沙痕
  • 2021-03-18 04:44
你走入了一个误区。
完全可以弄一个数组表示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 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 "抽取的第一张牌是:"; x9; x8
Print "抽取的第二张牌是:"; y9; y8
'输出两张牌的情况
Print x9; x8;
Select Case Sgn(x0 - y0)
Case 0
Print "=";
Case 1
Print ">";
Case -1
Print "<";
End Select
Print y9; y8
'比较,并输出结果
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
全部回答
  • 1楼网友:山河有幸埋战骨
  • 2021-03-18 06:39
这个我有,私信给你了
  • 2楼网友:爱难随人意
  • 2021-03-18 05:12
Dim pokesize, pokecolor Private Function pokecomp(a, b) For i = 0 To 12 If Left(a, 1) = pokesize(i) Then x = i Exit For End If Next i For i = 0 To 12 If Left(b, 1) = pokesize(i) Then y = i Exit For End If Next i If x > y Then pokecomp = 1 ElseIf x = y Then pokecomp = 0 Else pokecomp = -1 End If End Function Private Sub Command1_Click() Do While (1) x = onepoke MsgBox "系统出牌" & x, vbOKOnly y = onepoke MsgBox "你的牌为" & y, vbOKOnly If pokecomp(x, y) = -1 Then z = "你赢了!,继续吗?" ElseIf pokecomp(x, y) = 0 Then z = "平局!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯