vb.net 发牌程序 2
来源:互联网 发布:c语言怎么产生随机数 编辑:程序博客网 时间:2024/06/05 15:01
接上一篇文章,
发牌程序的代码:
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 教程 目录
阅读全文
0 0
- vb.net 发牌程序 2
- vb.net 发牌程序 1
- 发牌程序
- 发牌程序
- 发牌程序
- 发牌程序
- VB.NET聊天程序
- [VB.NET]倒计时程序
- VB.NET程序部署
- VB.NET 程序发布
- 改进的发牌程序
- 一个发牌程序
- C语言发牌程序
- C++发牌程序
- 发牌程序(一)
- 发牌程序(二)
- 发牌程序(三)
- 纸牌发牌程序,数据结构
- 八数码问题有解条件&推广N×N,N×N×N
- 学习c++:(0)安装与教程
- PyQT中让QMessageBox按钮显示中文
- 数据库分库分表中间件 Sharding-JDBC 源码分析 —— SQL 路由(二)之分库分表路由
- cin.get()函数与cin.getline()函数的区别
- vb.net 发牌程序 2
- 二分法的应用
- 第三周项目3—求集合并集
- 关于struts2网页开发过程中的404或500问题
- Ubuntu 17.04(Zesty Zapus)安装QT
- 数据库分库分表中间件 Sharding-JDBC 源码分析 —— SQL 改写
- 如何实现对一个DOM元素进行深拷贝,包括它绑定的事件
- oracle11g重建控制文件-open状态控制文件丢失
- 数据库分库分表中间件 Sharding-JDBC 源码分析 —— 分布式主键