Wednesday, April 20, 2011

Practice 7 II

 Public Class Form1
  
   'Declaring variables for the form
  
   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)
  
     'Generic code for all labels (Dice Roll)
  
     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 addCounts(ByRef ctxt As TextBox, ByVal c As Integer, ByVal d As Integer, ByVal e As String)
  
     'Generic code for all textboxes (Counters)
  
     ctxt.Text = e
  
     ctxt.Location = New Point(c, d)
  
     ctxt.Width = 150
  
     Me.Controls.Add(ctxt)
  
   End Sub
  
   Private Sub addRoll(ByRef butr As Button, ByVal s As String, ByVal t As Integer, ByVal u As Integer)
  
     'Generic code for all buttons (Button)
  
     butRoll.Text = s
  
     butRoll.Location = New Point(t, u)
  
     Me.Controls.Add(butRoll)
  
   End Sub
  
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  
     'Adding the Dice Rolls to the form
  
     addDice(lblDice1, 10, 20)
  
     addDice(lblDice2, 70, 20)
  
     addDice(lblDice3, 130, 20)
  
     addDice(lblDice4, 190, 20)
  
     addDice(lblDice5, 250, 20)
  
     'Adding the Counters to the form
  
     addCounts(lblYatzee, 20, 140, "Yatzees: 0")
  
     addCounts(lblFourOfAKind, 20, 180, "Four Of A Kind: 0")
  
     addCounts(lblThreeOfAKind, 20, 220, "Three Of A Kind: 0")
  
     'Adding the Buttons to the form
  
     addRoll(butRoll, "Roll", 100, 90)
  
   End Sub
  
   Private Sub codeDice(ByRef codelbl As Label)
  
     'Generic code for the dice
  
     codelbl.Text = rnd.Next(1, 7)
  
   End Sub
  
   Private Sub getTotal()
  
     'Declare the variable used to find the total
  
     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
  
     'Totals up three of a kind, four of a kind, and yatzee.
  
     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
  
   Private Sub nameLabel()
  
     'Display the total for yatzees, four of a kind, and three of a kind
  
     lblYatzee.Text = "Yatzees: " & nYatzee
  
     lblFourOfAKind.Text = "Four Of A Kind: " & nFourOfAKind
  
     lblThreeOfAKind.Text = "Three Of A Kind: " & nThreeOfAKind
  
   End Sub
  
   Private Sub RollDice() Handles butRoll.Click
  
     'Call the dice roll to the form
  
     codeDice(lblDice1)
  
     codeDice(lblDice2)
  
     codeDice(lblDice3)
  
     codeDice(lblDice4)
  
     codeDice(lblDice5)
  
     'Call the total to the form
  
     getTotal()
  
     'Call the display to the form
  
     nameLabel()
  
   End Sub
  
 End Class  

No comments:

Post a Comment