有没有办法在 Visual Basic 中交换二维数组中的值

Is there a way to swap a value around in a 2D array in Visual Basic

我正在尝试创建一个 larn 类型的游戏,但我遇到了一些问题。 我正在尝试使用通过读取文件创建的二维数组,然后基于数组中的值将其用作其世界,例如如果有 W 就是墙,E 代表敌人等等

我在移动方面遇到了一些问题,我知道如何移动一个值,但想知道是否有一种方法可以交换值,比如如果我想让我的角色向上移动,它可以与值交换在上面。

如果可能的话请告诉我,我正在进行的项目似乎真的让我陷入了困境

正如我在评论中提到的,交换很容易,这是一个演示它的子例程;

Sub SwapArrayCells(Arr As Variant, c11 As Integer, c12 As Integer, c21 As Integer, c22 As Integer)
    Dim tmp As Variant
    tmp = Arr(c11, c12)
    Arr(c11, c12) = Arr(c21, c22)
    Arr(c21, c22) = tmp
End Sub

但是,通常您不使用子例程来进行单元格交换,您只需使用这三个内联赋值语句(使用适当的局部变量名称)。

我在评论中提到的问题是,如果其他单元格中有东西,比如地形,那么你将交换周围的地形,这会改变你的地图。