Salut!
Je suis en train de corriger/faire des ajouts le bon vieux Maxoubot, mais il reste un bug que je n'arrive toujours pas à corriger.
En gros, si vous avez déjà utilisé le Maxoubot (sources originales en VB.NET) vous vous rendrez vite compte que certaines maps sont buguées dans le sens ou, certains soleils ne sont pas accessibles.
Et en analysant le code du Maxoubot on se rend compte que les données de la map sont bien téléchargées et déchiffrées, mais parfois il manque des soleils (c'est à dire que sur une map qui possède 4 soleils, gauche droite haut bas, il n'y en a que 3 qui sont détectés par le bot), ce qui empêche le bot de se diriger la ou il devrait pouvoir se diriger. Et ce problème ne se situe vraisemblablement pas dans la partie du code qui sert à dispatcher les soleils mais plutôt dans l’algorithme de déchiffrement en lui-même car le bot marque certaines cases qui possèdent un soleil comme cases inaccessibles.
Je n'arrive pas à identifier la source du problème est-ce une erreur d’arrondi ? D’algorithme ?
Merci d’avance pour l’aide !
Voici le bout de code (maxoubot original) qui me semble poser problème...
Public Function uncompressMap(ByVal sData As String) As Cell()
Dim _loc10(1024) As Cell
Dim _loc11 As Integer = sData.Length
Dim _loc13 As Integer = 0
Dim _loc14 As Integer = 0
While (_loc14 < _loc11)
Dim _loc12 As Cell = uncompressCell(sData.Substring(_loc14, 10))
If _loc12.movement = 2 Then
' case de TP par ex
' Le cas problematique ici serait de ne trouver que 3 records qui rentrent dans ce if au lieu de 4
End If
_loc10(_loc13) = _loc12
_loc14 += 10
_loc13 += 1
End While
Return _loc10
End Function