• [^] # Re: Solveur SameGame-like

    Posté par . En réponse à la dépêche Bubble Crusher 0.9 bêta release. Évalué à 3.

    J'avais dev il y a 3-4 ans un samegame dans le cadre de mes études en GtkAda et l'une des particularités c'était un mode où l'ordi encadrait le groupe de boules qu'il te conseillait de supprimer.

    J'avais l'idée de faire ça aussi, et également de mettre en surbrillance le groupe de billes sous le focus souris, mais j'ai un peu peur que ça fasse ramer (on verra).

    Alors de mémoire, l'idée c'était de faire un parcourt exhaustif en profondeur dans le graphe d'états sur genre 5 niveaux puis de finir avec une heuristique du genre : "je choisi une couleur et tant que je peux je ne joue que cette couleur, sinon j'en change". Ça me donnait donc un ensemble de scores sur les feuilles et je choisissais donc la branche qui m'avait donné le meilleur score.

    Ce qui pourrait me poser problème, c'est que certaines forme mutliplient le score par un coefficient (par exemple un carré, une ligne, une fourchette, un corner etc…) comme ce qui est présenté ici :http://www.spookyhousestudios.com/bubex-bonus-shapes.html
    Il est parfois plus intéressant de choisir une forme avec moins de billes.
    Même si le calcul du score (n -1 )2 encourage à choisir les groupes avec le plus grand nombre de billes (sur les modes large et extra large).
    Mais sinon oui la méthode que tu utilises ressemble fortement à ce que je voulais faire.
    Sauf que pour le solveur j'avais également d'autres idées.

    • Faire jouer l'ordinateur bêtement un grand nombre de fois (au moins 10000) en gardant la combinaison d'explosions qui rapporte le plus de points (ce qui permet d'obtenir un score normalement plus élevé que un joueur humain lambda).
    • Brute force avec toutes les combinaisons : juste bon a bloquer mon ordi pendant plusieurs jours je pense.
    • Calcul d'un coup puis des k suivants. Refaire cela pour chaque coup possible. Choisir celui qui rapporte le plus. Faire le coup. Recommencer. Le choix de k borné ne permet pas d'avoir le meilleur score possible mais un bon score.

    Le probleme étant qu'un coup qui rapporte peu de points n'est pas forcement moins bien qu'un coup qui rapport beaucoup de points car ça peut amener un autre coup qui rapporte beaucoup de points (et cela le coup suvant ou 10, 20 ou 30 coups plus tard…)

    La grille de jeu était plus grande (d'où l'obligation de se limiter à 4 ou 5 en profondeur) et il n'était pas nécessaire de détruire toutes les billes pour gagner, seul le score comptait.

    Quelle taille exactement?
    Pour le mode extra large, j'ai 16 * 19 billes, ça commence à faire grand (mais je peux augmenter si besoin).
    Dans bubble crusher, seul le score compte. Je pense multiplier le score par 4 si on arrive a exploser toutes les billes, mais je ne l'ai pas encore implémenté.

    Merci pour ton explication d'algo.