我想在 Visual Basic.NET 2010 中创建一个垄断棋盘和卢多游戏。
我应该如何表示棋盘?我在考虑图片框,但后来它们变得太笨拙而无法单独处理。你能创建图片框数组吗?
另外,由于我只是一个新手程序员,你能告诉我Visual Basic的哪些功能对这个游戏有用吗?
我想在 Visual Basic.NET 2010 中创建一个垄断棋盘和卢多游戏。
我应该如何表示棋盘?我在考虑图片框,但后来它们变得太笨拙而无法单独处理。你能创建图片框数组吗?
另外,由于我只是一个新手程序员,你能告诉我Visual Basic的哪些功能对这个游戏有用吗?
无需在窗体设计器中添加控件,您始终可以在 VB(和 C#)中以编程方式添加它们。这使您可以自由地将它们存储在您想要的任何位置,就像在二维数组中一样。请务必将它们也添加到Form.Controls
属性中。
Dim board as New PictureBox(M-1, N-1) {}
myform.SuspendLayout() ' Diminishes flicker.
For i As Integer = 0 To M - 1
For k As Integer = 0 To N - 1
Dim pic = New PictureBox()
'TODO: set the properties of the PictureBox here
board(i, k) = pic
myForm.Controls.Add(pic)
Next k
Next i
myForm.ResumeLayout()
还可以考虑将其添加PictureBoxes
到 aTableLayoutPanel
而不是直接将它们添加到表单中。
Board
而且,当然,创建一个类并处理该类中的所有板逻辑而不是在表单事件处理程序中执行逻辑是一个好主意。其他类如Player
orGame
或Score
也可以提供帮助。
最好不要创建 PictureBox 的二维数组,而是创建某个类的数组,这些Square
类可以存储其他信息,例如正方形的状态或留在正方形上的图形列表或对特殊的引用适用于正方形的规则等等。你在游戏的设计上有很大的自由度。将游戏逻辑与 UI 细节分开的智能设计更易于处理,并且可以更轻松地发展。
我会考虑创建一个 UserControl,而不是使用 PictureBox,它封装了与板上的正方形相关的所有 UI 相关逻辑。例如,您可能希望棋盘上的所有方块都有一个特定的右键单击上下文菜单,或者在双击时做一些特别的事情。在 Monopoly 中,您可能希望每个方块都有一个属性名称、价格、颜色等。