请用C#写出去掉大王,小王后,随机抽出5张扑克牌的程序。

请用C#写出去掉大王,小王后,随机抽出5张扑克牌的程序。,第1张

这个很简单啦,你只需要写一个递归函数。初始是1和2的情况。在n时,只需要将第n个数依次排到n-1时候每一个排序的中间;

例如:

做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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12030871.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存