Write a method to shuffle a deck of cards in VB.NET

前端 未结 4 1859
栀梦
栀梦 2021-01-06 11:57

I have a standard deck of 52 cards is represented in an array. Each card is represented as an integer. I wrote the below function to shuffle the cards. Does the code below l

4条回答
  •  长发绾君心
    2021-01-06 12:21

    This is formally now known as the 'Briggs' Shuffle

    Module module1
    
    Dim cards(51) As String
    Dim trues(51) As Boolean
    Dim number, Truecheck As Integer
    Dim stores, loopy As String
    
    Sub main()
    
        number = 1
    
        cards(0) = "Ace of Spades"
        cards(10) = "Jack of Spades"
        cards(11) = "Queen of Spades"
        cards(12) = "King of Spades"
    
        cards(13) = "Ace of Clubs"
        cards(23) = "Jack of Clubs"
        cards(24) = "Queen of Clubs"
        cards(25) = "King of Clubs"
    
        cards(26) = "Aec of Diamonds"
        cards(36) = "Jack of Diamods"
        cards(37) = "Queen of Diamonds"
        cards(38) = "King of Diamonds"
    
        cards(39) = "Ace of Hearts"
        cards(49) = "Jack of Heats"
        cards(50) = "Queen of Hearts"
        cards(51) = "King of Hearts"
    
    
        For i = 1 To 9
            number = number + 1
            cards(i) = number.ToString + " of Spades"
        Next
    
        number = 1
    
        For i = 14 To 22
            number = number + 1
            cards(i) = number.ToString + " of Clubs"
        Next
    
        number = 1
    
        For i = 27 To 35
            number = number + 1
            cards(i) = number.ToString + " of Diamonds"
        Next
    
        number = 1
    
        For i = 40 To 48
            number = number + 1
            cards(i) = number.ToString + " of Hearts"
        Next
    
        For i = 0 To 51
            Console.WriteLine(cards(i))
        Next
    
    
        Console.WriteLine("")
        Console.WriteLine("")
    
        For i = 0 To 51
    
    linetrue:
    
            Randomize()
            stores = cards(i)
            Truecheck = Int(Rnd() * 51)
            If trues(Truecheck) = True Then GoTo linetrue
    
            trues(i) = True
            cards(i) = cards(Truecheck)
            cards(Truecheck) = stores
            Console.WriteLine(cards(i))
    
        Next
    
    
    End Sub
    
    
    End Module
    

提交回复
热议问题