Bataille navale avec deplacement limité

Minimax

a marqué ce sujet comme résolu.

Bonjour,

j’ai un projet de jeu de bataille navale avec possibilité de jouer contre l’ordinateur et je voudrais ajouter une possibilité qui est de déplacer les bateaux quand ils sont en danger avec une limite quand au nombre de déplacements possible.

Pour la prise de décision par l’ordinateur je devrais utiliser un algorithme minimax mais dans ce cas si il y a une part d’imprévisibilité étant donné que quand je choisi un coup je ne sais pas d’avance si mon coup est touche, coulé ou coup à l’eau.

Du coup est ce que je dois introduire des nœuds de hasard qui me calculent le score espéré, la moyenne, en fonction de la probabilité de toucher, couler, ou de coup à l’eau ?

Qu’en pensez vous ?

+1 -0

Bonjour,

Minimax me semble pas du tout adapté pour une bataille navale, c'est fait pour les jeux à information complète. Les nœuds de hasard sont fait pour des évenements imprévisible (lancé de dé) pas pour une information caché. À mon humble avis, tu vas juste obtenir des proba très faible et égale dans presque tout les cas (et l'ordi va pas savoir quoi en faire).

Malheureusement, j'ai pas d'alternative à te proposer, je connais pas d'autre algo de ce type (y'a toujours les reseaux de neurones, mais c'est un peu beaucoup overkill). Et les déplacements rendent compliqué une IA from scratch. En parlant de déplacement, tu pourrai préciser ? Ça à l'air sympas comme variante.

+1 -0

Bonjour,

Quand je parle de déplacement je pensais à la possibilité de se déplacer d’une case à la fois soit en avant soit en arrière ou latéralement mais plus couteux en carburant, avec une limite de carburant qui fait que les bateaux ne pourront pas se déplacer indéfiniment.

Je pense que dans une bataille navale normale un Minimax ne s’applique pas étant donné qu’un adversaire ne peut pas contrecarrer un coup, il n’y a donc pas à mon sens de situation d’adversité.

Par contre si je rajoute les déplacements, un adversaire peut contrecarrer le coup en se déplaçant. Si par exemple l’ordinateur est touché il pourrait choisir de se déplacer ou de continuer à attaquer si il est déjà entrain de pilonner une position ennemie et qu’il a presque coulé son adversaire. Et pour cela il devrait faire le choix qui lui offre le meilleur résultat. Je vais faire quelques simulations pour voir ce que ça pourrait donner.

Comme stratégie ici je pense jouer sur un état de croyance. Au début je n’ai aucune idée d’où se trouve l’adversaire et je vise au au hasard jusqu’à toucher une position ennemie. Une fois que j’ai touché une case, j’ai une idée d’où peut se trouver l’adversaire et je peux mettre mon état de croyance à jour en marquant certaines cases comme plus intéressantes à attaquer que d’autres. Mais si j’ajoute les déplacement je dois aussi tenir compte du fait que mon adversaire au prochain coup ne sera plus au même endroit et élargir mon champ d’attaque, jusqu’à éventuellement en perdre totalement la trace.

Il y a la possibilité de calculer un plan à l’avance, une solution contingente avec un algorithme qui utilise un arbre ET OU, en fonction des percepts éventuels que je peux recevoir de l’arbitre ( touche, coule, coup à l’eau ) puis à choisir ensuite la bonne action en fonction du percept réel, mais ça oblige à calculer des situation qui pourraient ne jamais arriver. Du coup je pense à plutôt calculer l’état de croyance au fur et à mesure du résultat des attaques.

+2 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte