接上一篇文章,
发牌程序的代码:
imports System.DrawingPublic Class Form1 Structure Poker Dim ID As Integer Dim name As String End Structure Dim prePoker As List(Of Poker) Dim disorderPoker As List(Of Poker) Dim personPoker() As List(Of Poker) Private Sub Form1_Load(sender As Object,e As EventArgs) Handles MyBase.Load prePoker = New List(Of Poker) ComboBox1.Text = "3" End Sub Private Sub initPoker(ByVal intPokerCount As Integer) Dim pokercolor As String Dim pokername As String Dim poker_ID As Integer Dim poker_name As String Dim poker As New Poker For i As Integer = 0 To intPokerCount poker_ID = i Dim intPokername As Integer = i \ 4 Select Case intPokername Case 0 pokername = "A" Case 1 To 8 pokername = intPokername.ToString Case 9 pokername = "X" Case 10 pokername = "J" Case 11 pokername = "Q" Case 12 pokername = "K" Case Else pokername = "Joker" End Select Dim intPokercolor As Integer = i Mod 4 Select Case intPokercolor Case 0 pokercolor = "S" '-Spade Case 1 pokercolor = "H" '-Heart Case 2 pokercolor = "C" '-Club Case Else pokercolor = "D" '-Diamond End Select If pokername = "Joker" Then If intPokercolor = 0 Then pokercolor = "B" '-Big Else pokercolor = "L" '-little End If End If poker_name = pokercolor & " " & pokername poker.ID = poker_ID poker.name = poker_name prePoker.Add(poker) Next End Sub Private Sub button1_Click(sender As Object,e As EventArgs) Handles button1.Click Dim intPokerCount As Integer Dim intPersonCount As Integer Select Case ComboBox1.Text Case "3" intPokerCount = 53 intPersonCount = 3 Case Else intPokerCount = 51 intPersonCount = 4 End Select Call initPoker(intPokerCount) disorderPoker = New List(Of Poker) Call distributePoker() ReDim personPoker(intPersonCount) For i As Integer = 0 To intPersonCount - 1 personPoker(i) = New List(Of Poker) Next Dim orderID As Integer For i As Integer = 0 To disorderPoker.Count - 1 orderID = i Mod intPersonCount personPoker(orderID).Add(disorderPoker.Item(i)) Next Call drawPoker() End Sub Private Sub distributePoker() Dim intPokerCount As Integer intPokerCount = prePoker.Count - 1 Dim rand_PokerIndex As Integer Dim randSeed As New Random(Now.Millisecond) For i As Integer = intPokerCount To 0 Step -1 rand_PokerIndex = randSeed.Next(i + 1) disorderPoker.Add(prePoker.Item(rand_PokerIndex)) prePoker.RemoveAt(rand_PokerIndex) Next End Sub Private Sub drawPoker() Dim imgPath As String = "" Dim imgFolder As String = Application.StartupPath & "\poker\" Dim g As Graphics = PictureBox1.CreateGraphics g.Clear(PictureBox1.Backcolor) Dim intPersonCount As Integer = personPoker.GetUpperBound(0) Dim leftmargin As Integer = 10 Dim topmargin As Integer = 10 For i As Integer = 0 To intPersonCount - 1 For j As Integer = 0 To personPoker(i).Count - 1 imgPath = imgFolder & personPoker(i)(j).ID & ".jpg" Dim bmp As New Bitmap(imgPath) g.DrawImage(bmp,New Point(leftmargin + j * 30,topmargin + i * 60)) bmp.dispose() Next Next g.dispose() End SubEnd Class
运行时:
由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。
学习更多vb.net知识,请参看vb.net 教程 目录
总结以上是内存溢出为你收集整理的vb.net 发牌程序 2全部内容,希望文章能够帮你解决vb.net 发牌程序 2所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)