1.29 Sur certaines maps le Maxoubot ne détecte pas tous les soleils

Inscrit
8 Novembre 2016
Messages
6
Reactions
0
#1
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...

Code:
 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
 
Dernière édition:
Inscrit
23 Novembre 2018
Messages
20
Reactions
1
#2
Salut,

Il me semble que le code de maxou ne prends pas en compte toutes les tailles de map possible.

Si c'est une map basique (astrub), pas de soucis pour déchiffrer, par contre si c'est ailleurs, bonta, brakmar, les maps sont plus grandes.
Et l'algo considère que toutes les maps font 15x17 (je crois), ce qui n'est pas le cas, donc ça fonctionne mal

Je suis peut-être HS mais c'est ce que j'ai vu sur le fofo !
 
Inscrit
8 Novembre 2016
Messages
6
Reactions
0
#3
Salut,

Il me semble que le code de maxou ne prends pas en compte toutes les tailles de map possible.

Si c'est une map basique (astrub), pas de soucis pour déchiffrer, par contre si c'est ailleurs, bonta, brakmar, les maps sont plus grandes.
Et l'algo considère que toutes les maps font 15x17 (je crois), ce qui n'est pas le cas, donc ça fonctionne mal

Je suis peut-être HS mais c'est ce que j'ai vu sur le fofo !
Merci de ta réponse mais je pense que ce ne soit pas le cas car je n’ai que test sur des maps d’astrub (en plus). Le bot déchiffre bien parfois, parfois pas, peu importe que ce soit haut/bas/gauche/droite. Mais ça ne change pas, un coup c’est le soleil droit qui n’est pas détecté, un coup c’est le gauche (en fonction de la map bien sûr). Si une map est buguée elle le reste (donc pas en lien avec la gestion de mémoire/stabilité).
 
Inscrit
12 Avril 2014
Messages
22
Reactions
5
#4
Si je dis pas de bêtise je crois que certains soleils sont "en dur" dans la map. Il faut déplacer ton bot sur la cellId du soleil.

EDIT: confirmation avec ce post.
 
Haut Bas