0

对于一个学校项目,我们需要制作一个棋盘游戏,现在我已经为 NPC 制作了一个位置列表。

这些位置存储在一个名为 player2.txt 的 txt 文件中,如下http://pastebin.com/ZhbSvjSt

我使用以下代码从文件中读取它们。 http://pastebin.com/UjLSeWrQ

Dim TurnP2 As String = IO.File.ReadAllLines(".\player2.txt")(Turn)
Dim source As String = TurnP2
Dim result() As String = Split(source, ",")

但现在我被困住了,我不知道如何将这 3 个数字分成变量。例如取第一行 1,1,5

我需要将这些数字放在以下变量中:

CoX = 1
CoY = 1
CoZ = 5

任何人都可以进一步帮助我吗?

也很抱歉使用 pastebin,但我在尝试发布时遇到了一个奇怪的错误。

问候尤尔

4

2 回答 2

1

我会创建一个类:

   Private Class Coords
        Public coordX As Integer
        Public coordY As Integer
        Public coordz As Integer
    End Class

然后我会填写一个清单:

    Dim source As String() = System.IO.File.ReadAllLines(".\player2.txt")
    Dim ListCoords = New List(Of Coords)

    For Each Val As String In source

        Dim s As String() = Val.Split(",")

        ListCoords.Add(New Coords With {.coordX = s(0).ToString, _
                             .coordY = s(1).ToString, _
                             .coordz = s(2).ToString})

    Next

您将有一个加载坐标的列表:

在此处输入图像描述

于 2013-10-17T11:43:40.703 回答
0

您有多行,CoX, CoY,CoZ数组也是如此吗?

您可以使用循环来初始化它们。假设始终有效的数据:

Dim TurnP2 As String() = IO.File.ReadAllLines(".\player2.txt")
Dim CosX(TurnP2.Length - 1) As Int32
Dim CosY(TurnP2.Length - 1) As Int32
Dim CosZ(TurnP2.Length - 1) As Int32
For i As Int32 = 0 To TurnP2.Length - 1
    Dim values = TurnP2(i).Split(","c)
    CosX(i) = Int32.Parse(values(0))
    CosY(i) = Int32.Parse(values(1))
    CosZ(i) = Int32.Parse(values(2))
Next
于 2013-10-17T11:47:32.213 回答