All pastes #42977 Raw Edit

Stand__Sure

public text v1 · immutable
#42977 ·published 2006-02-24 05:00 UTC
rendered paste body
Private Sub btnDeal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDeal.Click

		Me.lblHand.Text = ""

		Dim rndNum As Random = New Random()
		Dim intX, intY As Integer
		Dim intCardNum As Integer
		Dim intSuitNum As Integer
		Dim intFaceNum As Integer
		Dim intHandIndex As Integer = 0

		Dim Suits As String() = New String() {"Hearts", "Diamonds", _
			"Clubs", "Spades"}
		Dim Faces As String() = New String() {"Ace", "Deuce", "Three", _
			"Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", _
			"Jack", "Queen", "King"}
		Dim HandStrength As String() = New String() {"Nothing Special", "There is a pair", _
		"There are two pairs", "There is three of a kind", "There is a full house", _
		"There is four of a kind"}

		Dim Deck(51) As Integer
		Dim myHand(4) As String
		Dim myHandPairs(3) As Integer
		'For intX = 1 To 5
		'    Do
		'        intCardNum = rndNum.Next(0, 52)
		'    Loop Until Deck(intCardNum) = 0
		'    Deck(intCardNum) = 1
		'Next

		'fill
		For nValue As Integer = 0 To Deck.Length - 1
			Deck(nValue) = nValue + 1
		Next

		'mix
		For nLoop As Integer = 1 To 1000
			Dim nLeft As Integer = rndNum.Next(0, Deck.Length - 1)
			Dim nRight As Integer = rndNum.Next(0, Deck.Length - 1)
			Dim nSwap As Integer = Deck(nLeft)
			Deck(nLeft) = Deck(nRight)
			Deck(nRight) = nSwap
		Next

		'deal hand
		For nLoop As Integer = 0 To myHand.Length - 1
			myHand(nLoop) = Faces((Deck(nLoop) \ 13)) + " of " + Suits(CType(Math.Floor(Deck(nLoop) / 13), Integer))
		Next

		'show hand
		For nCard As Integer = 0 To myHand.Length - 1
			Me.lblHand.Text += myHand(nCard) + ControlChars.CrLf
		Next
		'lblHand.Text = ""
		'For intX = 0 To 51
		'	If Deck(intX) = 1 Then
		'		intSuitNum = intX \ 13
		'		intFaceNum = intX - (intSuitNum * 13)  'or intX mod 13
		'		lblHand.Text = lblHand.Text + Faces(intFaceNum) + _
		'		 " Of " + Suits(intSuitNum) + vbCrLf + vbCrLf
		'		myHand(intHandIndex) = Convert.ToString(intFaceNum)
		'		intHandIndex += 1
		'	End If
		'Next
		Dim pair As Integer = 0
		' For testing :)
		'myHand = New String() {"Ace", "Three", "Ace", "Ace", "Ace"}
		While pair < 3
			For intY = 0 To 4
				For intX = intY + 1 To 4
					If (myHand(intY) = myHand(intX)) Then
						' Finds the ammount of times that intY is found and
						' adds to value in myHandsPairs(pair)
						myHandPairs(pair) = myHandPairs(pair) + 1
					End If
				Next
				pair += 1
			Next

		End While

		intHandIndex = myHandPairs(0) + myHandPairs(1) + myHandPairs(2) + myHandPairs(3)

		'Problem occurs in the lblResult.text below. If intHandIndex isn't reset to 5, there is an out of bounds error.
		' I`m not sure how to fix this so that intHandIndex will never be                
		If (intHandIndex = 6) Then
			intHandIndex = 5
		End If
		lblResult.Text = HandStrength(intHandIndex)

	End Sub