在Visual Basic中创建垄断和Ludo

时间:2012-06-27 13:44:55

标签: vb.net

我想在Visual Basic.NET 2010中创建一个垄断板和ludo游戏 我该如何代表董事会?我在考虑使用图片框,但是他们个别地处理起来太笨拙了。你能创建图片框数组吗?

另外,由于我只是一名新手程序员,你能说出Visual Basic的哪些功能对这个游戏有用吗?

2 个答案:

答案 0 :(得分:2)

您可以始终以编程方式在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添加到TableLayoutPanel,而不是直接将其添加到表单中。

而且,最重要的是,创建一个Board类并处理该类中的所有板逻辑而不是在表单事件处理程序中执行逻辑是一个好主意。其他类如PlayerGameScore也可以提供帮助。

甚至更好的想法是不创建PictureBoxes的二维数组,而是一些可以存储其他信息的数组Square类,例如正方形的状态或保留的数字列表正方形或对适用于正方形的特殊规则的引用等。你在设计游戏时有很大的自由。除了在事件处理程序中使用PictureBoxes之外,智能设计将更易于处理和适应其他游戏。

答案 1 :(得分:0)

我会考虑创建一个UserControl,而不是使用PictureBox,它会封装与棋盘上方块相关的所有与UI相关的逻辑。例如,您可能希望板上的所有方块都有一个特定的右键单击上下文菜单,或者在双击时特别执行某些操作。在大富翁中,您可能希望每个广场都有一个房产名称,价格,颜色等。