Public Class Form1
Dim lblDice1, lblDice2, lblDice3, lblDice4, lblDice5 As New Label
Dim WithEvents butRoll As New Button
Dim nYatzee, nFourOfAKind, nThreeOfAKind As New Integer
Dim lblYatzee, lblFourOfAKind, lblThreeOfAKind As New TextBox
Dim rnd As New Random
Private Sub addDice(ByRef lbl As Label, ByVal x As Integer, ByVal y As Integer)
lbl.Text = 0
lbl.Location = New Point(x, y)
lbl.Font = New Drawing.Font("Microsoft Sans Serif", 28.0F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point)
lbl.Height = 40
lbl.Width = 40
Me.Controls.Add(lbl)
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
addDice(lblDice1, 10, 20)
addDice(lblDice2, 70, 20)
addDice(lblDice3, 130, 20)
addDice(lblDice4, 190, 20)
addDice(lblDice5, 250, 20)
resultscount(lblYatzee, "Yahtzees: 0", 20, 140)
resultscount(lblFourOfAKind, "Four of a Kinds: 0", 20, 180)
resultscount(lblThreeOfAKind, "Three of a Kinds: 0", 20, 220)
AddButton(butRoll, "Roll", 100, 90)
End Sub
Private Sub resultscount(ByRef results As TextBox, ByRef Name As String, ByVal x As Integer, ByVal y As Integer)
results.Text = Name
results.Location = New Point(x, y)
results.Width = 150
Me.Controls.Add(results)
End Sub
Private Sub RollDice() Handles butRoll.Click
Dim arrNumbers() As Integer = {0, 0, 0, 0, 0, 0}
RollSingleDice(lblDice1)
RollSingleDice(lblDice2)
RollSingleDice(lblDice3)
RollSingleDice(lblDice4)
RollSingleDice(lblDice5)
GetStats()
lblYatzee.Text = "Yatzees: " & nYatzee
lblFourOfAKind.Text = "Four Of A Kind: " & nFourOfAKind
lblThreeOfAKind.Text = "Three Of A Kind: " & nThreeOfAKind
End Sub
Private Sub AddButton(ByRef results As Button, ByRef Name As String, ByVal x As Integer, ByVal y As Integer)
results.Text = Name
results.Location = New Point(x, y)
results.Width = 150
Me.Controls.Add(results)
End Sub
Private Sub RollSingleDice(ByRef lblDice As Label)
lblDice.Text = rnd.Next(1, 7)
End Sub
Private Sub GetStats()
Dim arrNumbers() As Integer = {0, 0, 0, 0, 0, 0}
For Each lbl As Label In Me.Controls.OfType(Of Label)()
arrNumbers(lbl.Text - 1) += 1
Next
For Each i As Integer In arrNumbers
If i = 5 Then
nYatzee += 1
ElseIf i = 4 Then
nFourOfAKind += 1
ElseIf i = 3 Then
nThreeOfAKind += 1
End If
Next
End Sub
End Class
Wednesday, May 11, 2011
VB Practice 7 - Methods II - Yahtzee
Labels:
methods,
visual basic,
yahtzee
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment