我想在房间内搜索房间(我不知道房间里有多少房间)。
然后对于这个房间的每个房间我想再次搜索这些房间是否有房间等等(递归)。
但是如果房间深度达到X,那么如果没有房间,它应该停止/保存。我的代码基本上可以工作,但是当有更多房间时,它会覆盖房间。
所以假设房间A有两个房间1室和2室。然后我的功能将与1号房间一起工作,但忽略了2号房间,我不知道为什么。
Private Class Room
Public Name As String
Public RoomCounter As Integer
End Class
Private Const _maxRooms As Integer = 2
Private Sub GetRoomsRecursive(pMatchString As String, pCurrentRound As Integer, pOriginalRoom As Room)
Dim foundRooms As String = RoomsMatching(pMatchString)
For Each s As String In foundRooms.Split(vbNewLine)
If Not s.Contains(";") Then 'There are rooms in that room
If pCurrentRound >= _maxRooms - 1 Then Continue For 'Don't search further
If pOriginalRoom Is Nothing Then
Dim tempRoom As New Room With {.Name = $"Room_{s}"}
tempRoom.RoomCounter += 1
GetRoomsRecursive(pMatchString, pCurrentRound + 1, tempRoom)
Else
If pOriginalRoom.RoomCounter = _maxRooms Then Continue For '
pOriginalRoom.Name = $"Room_{s}" 'Override name
pOriginalRoom.RoomCounter += 1
GetRoomsRecursive(pMatchString, pCurrentRound + 1, pOriginalRoom)
End If
Else 'There are no more rooms
If pOriginalRoom Is Nothing Then
Dim tempRoom As New Room With {.Name = $"Room_{s}"}
tempRoom.RoomCounter += 1
'todo: save the room
Else
If pOriginalRoom.RoomCounter = _maxRooms Then Continue For '
pOriginalRoom.Name = $"Room_{s}" 'Override name
pOriginalRoom.RoomCounter += 1
'todo: save the room
End If
End If
Next
End Sub