如何根据字符串输入

时间:2016-09-25 16:07:07

标签: vb.net

对于我的计算项目,我正在创建一个风险游戏,这需要我随机生成玩家的初始国家(为了简单,我已经开始使用2个玩家),为此我将拥有按钮(代表国家)改变颜色以表示它是哪个国家。

我尝试为每个玩家分配颜色的字符串值,然后将按钮颜色设置为该值。目前的问题在于" b.T​​ag.BackColor = Players_Colours(N)"因为某些原因,Players_Colours(N)给出的值是" S" c。

任何想法为什么会是这种情况或任何事情都会受到赞赏。

Public Sub New()
    ' This call is required by the designer.
    InitializeComponent()
    ' Add any initialization after the InitializeComponent() call.
End Sub

Public Function Random_country_picker(ByVal players)
    Dim County_List = {"Oxfordshire", "Buckinhamshire", "Berkshire", "London", "Hampshire", "Surrey", "West_Sussex", "East_Sussex", "Kent", "Bedfordshire", "Cambridgeshire", "Hertfordshire", "Essex", "Cornwall", "Devon", "Gloucestershire", "Whiltshire", "Lancashire", "Cumbria", "Cheshire", "Manchester", "Merseyside", "Lincolnshire", "Staffordshire", "Herefordshire", "County_Durham", "North_Yorkshire", "South_Yorkshire", "Warwickshire", "Northumberland", "West_Yorkshire", "East_Yorkshire", "Shropshire", "Northamptonshire", "Derbyshire", "Nottinghamshire", "Worcestershire", "Somerset", "Dorset", "Isle_Of_White", "Norfolk", "Suffolk"}
    Dim value As String
    Dim num = 0
    Dim nump = 42 / players
    Dim N As Integer
    Dim Players_Colours As String
    Dim z As String
    Players_Colours = {"Pink", "Red"}.ToString
    N = 0
    Randomize()
    Dim rnd As New Random()
    Dim index As Integer
    While nump > num
        If N > Players_Colours.Length Then
            N = 0
        End If
        index = rnd.Next(0, County_List.Length)
        value = County_List(index)
        For Each b As Windows.Forms.Button In Me.Controls
            If b.Tag = index Then
                b.Tag.BackColor = Players_Colours(N)
            End If
        Next
        Array.Clear(County_List, index, 1)
        num += 1
        N += 1
    End While
    Return 0
End Function

Random_country_picker(2)

0 个答案:

没有答案