Programmation du Jeu des Dames Chinoises
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -39%
Pack Home Cinéma Magnat Monitor : Ampli DENON ...
Voir le deal
1190 €

Réunion du 15 novembre pour gens ne gérant pas l'affichage..

2 participants

Aller en bas

Réunion du 15 novembre pour gens ne gérant pas l'affichage.. Empty Réunion du 15 novembre pour gens ne gérant pas l'affichage..

Message par Kerigwenn Jeu 15 Nov - 20:24

Bonjour ou re-bonjour tout le monde, voilà le compte-rendu tant attendu de nos réflexions de cet après-midi.


La réunion avait deux objectifs principaux :

- mettre tout le monde d’accord sur les termes employés (vocabulaire)

- définir les étapes de l’algorithme qui restent à faire, en nommant les fonctions à créer

... choses que je vais mettre dans des messages différents pour ne pas me faire couper par un truc informatique ignoble qui m'interromprait la parole.
Kerigwenn
Kerigwenn

Nombre de messages : 99
Localisation : ...sur ma chaise.
Date d'inscription : 18/10/2007

Revenir en haut Aller en bas

Réunion du 15 novembre pour gens ne gérant pas l'affichage.. Empty Re: Réunion du 15 novembre pour gens ne gérant pas l'affichage..

Message par Kerigwenn Jeu 15 Nov - 20:25

Vocabulaire :

- déplacement simple : quand le pion n’avance que d’une case, sans sauter un autre pion

- saut : désigne un saut ^^

- déplacement : soit un déplacement simple, soit une suite de sauts consécutifs

- chemin : suite de déplacements en plusieurs coups, pour un joueur

- UN coup : désigne que chacun des joueurs a joué en effectuant un déplacement (ici, le joueur et l’ordinateur)

- Un DEMI coup : comme on a que le joueur et l’ordinateur, désigne quand un seul « joueur » joue en effectuant son déplacement



Définition d’une structure pour le stockage des déplacements. Cette structure pourrait ensuite servir à former un tableau de structures « déplacement », pour simuler les étapes d’un chemin.



On aurait :

typedef struct DEPLACEMENT{

int l_depart ;

int l_arrivee ;

int translation_horizontale ;

int translation_verticale ;

}DEPLACEMENT ;

… ou un truc du genre.
Kerigwenn
Kerigwenn

Nombre de messages : 99
Localisation : ...sur ma chaise.
Date d'inscription : 18/10/2007

Revenir en haut Aller en bas

Réunion du 15 novembre pour gens ne gérant pas l'affichage.. Empty Re: Réunion du 15 novembre pour gens ne gérant pas l'affichage..

Message par Kerigwenn Jeu 15 Nov - 20:27

Algorithme : éléments nécessaires (et déjà gérés ou presque)





- Affichage (..no coment..)



- Modélisation du plateau -> Plateau[l][c]




Pour le joueur humain…



- Fonction Deplacer

Déplacement simple

Saut Suite de Sauts
Kerigwenn
Kerigwenn

Nombre de messages : 99
Localisation : ...sur ma chaise.
Date d'inscription : 18/10/2007

Revenir en haut Aller en bas

Réunion du 15 novembre pour gens ne gérant pas l'affichage.. Empty Re: Réunion du 15 novembre pour gens ne gérant pas l'affichage..

Message par Kerigwenn Jeu 15 Nov - 20:28

Algorithme : éléments nécessaires (à faire^^)


Pour l’ordinateur…



  • Choix de différents pions de départ possibles


Remarques : on privilégiera sans doute les pions les plus reculés dans le plateau et qui ont une possibilité d’avancer, de préférence en effectuant un saut. Ce qui implique de lire le Plateau depuis le haut en testant les pions un à un puis d’en choisir un nombre limité pour ne pas faire ramer l’ordi dans ce qui suit (par exemple, 3 pions). On les choisit en considérant qu’ils sont « meilleurs », c’est-à-dire qu’ils ont de plus grandes chances d’avancer (le plus loin possible) tout en étant les plus reculés possibles (pour ne pas en laisser en arrière dans le jeu).

  • Détermination des chemins possibles pour un pion et choix de celui qui l’amènerait le plus loin, pour en effectuer le premier déplacement. On tient compte de la réaction de l’opposant sur un nombre de coups fixé. Cette partie se divise en différentes fonctions (qu’on pourra regrouper en une seule plus tard, je sais) :




- Meilleur_Deplacement_Statique : fonction donnant le meilleur déplacement pour un pion donné, dans un état de jeu donné, sans tenir compte d’une quelconque réaction de l’adversaire.



- Chemins_Possibles : sur plusieurs coups (nombre_coup qui devra être fixé), on utilise la fonction précédente (appliquée à un pion) pour construire plusieurs chemins possibles, répertoriés en « arbre de demi-coups ». Chaque niveau de l’arbre correspond à un demi-coup, et on lui attribue une profondeur limite (variable profondeur=nombre_coup*2).

A ce stade, il peut être utile de limiter la recherche si on ne veut pas un plantage total : à chaque profondeur, on recentre la recherche en ne prenant que les trois meilleures solutions possibles (ligne la plus avancée).

(Le chiffre 3 est arbitraire, il correspond au nombre de pions potentiellement déplaçables choisis au départ : j’y reviendrai plus loin.)



- Choix_Chemin : on a obtenu un arbre, dont on va évaluer les feuilles ! (Entre nous, vive l’automne, y’en a moins.)

Pour cela, on cherche lequel des chemins (ici pour un pion donné) permet d’avancer le plus loin, ce qui revient à sélectionner la meilleure feuille…

On regarde : 1) la ligne la plus avancée

2) la case d’arrivée la plus centrée en cas d’indécision



  • Choix du meilleur pion, et de son meilleur déplacement possible associé : on crée une fonction globale Deplacement_Meilleur_Pion qui utilise les deux précédentes de la façon suivante :


- on choisit quels sont les pions potentiellement déplaçables, de façon à ce qu’ils soient le plus reculés possibles, etc, comme ce qui a été dit plus haut. Pour ça, on fixe un nombre de pions maximum (qui reservira), disons nbre_max.

- POUR CHAQUE PION sélectionné (de 1 à nbre_max, si vous avez suivi), on effectue la suite de fonctions décrites en 2., c’est à dire dans l’ordre :

Chemins_possibles, qui utilise Meilleur_Deplacement_Statique

Choix_Chemin

- On continue ensuite la fonction Deplacement_Meilleur_Pion : à partir du meilleur déplacement choisi pour chacun des pions considérés, on regarde lequel est le meilleur et permet d’aller le plus loin. On le choisit. On regarde quel est son premier déplacement, et on l’effectue.
Kerigwenn
Kerigwenn

Nombre de messages : 99
Localisation : ...sur ma chaise.
Date d'inscription : 18/10/2007

Revenir en haut Aller en bas

Réunion du 15 novembre pour gens ne gérant pas l'affichage.. Empty Re: Réunion du 15 novembre pour gens ne gérant pas l'affichage..

Message par Kerigwenn Jeu 15 Nov - 20:31

REMARQUES

1. Evaluation d’un « meilleur » chemin, déplacement, etc..

On peut faire ça en regardant la valeur l_arrivee - l_depart, qui devra alors être maximum. Sinon, Sarah avait d’autres idées que je n’ai pas retenues, et j’aimerai bien, s’il-te-plaît Sarah, que tu nous les expliques/rappelles à la suite de ce message…



2. Prise en compte de la réaction de l’opposant

En toute rigueur, il aurait fallu refaire un choix de meilleur pion pour chaque profondeur de l’arbre, alors qu’ici on garde les trois mêmes (pour l’ordi du moins). Ce qui semble plus logique car on cherche à ne déplacer qu’un seul pion, en un seul déplacement.





3. Aucune remarque tolérée sur mes problèmes d’affichage sur le site ! Razz

Kerigwenn
Kerigwenn

Nombre de messages : 99
Localisation : ...sur ma chaise.
Date d'inscription : 18/10/2007

Revenir en haut Aller en bas

Réunion du 15 novembre pour gens ne gérant pas l'affichage.. Empty Re: Réunion du 15 novembre pour gens ne gérant pas l'affichage..

Message par Mellyra Jeu 15 Nov - 21:10

Je vois avec plaisir que ca a moussé dans vos cerveaux cet aprem^^.

Moi j'ai passé une bonne partie de la journee a remettre en ordre ce que j'ai deja fait: ne conserver que les fonctions qui servent a qqch et commenter TRES abondamment. Je vous passe le resultat demain, vous allez etre contentes d'y comprendre enfin qqch vous allez voir^^.

J'attends avec impatience que Sarah nous fasse aussi part de ses idees.
Sinon, je pense qu'il y a de tres bonnes idees.

Good job Wink
Mellyra
Mellyra
Admin

Nombre de messages : 118
Age : 37
Localisation : Dans mon lit ^^
Date d'inscription : 18/10/2007

https://dameschinoises.forumpro.fr

Revenir en haut Aller en bas

Réunion du 15 novembre pour gens ne gérant pas l'affichage.. Empty Re: Réunion du 15 novembre pour gens ne gérant pas l'affichage..

Message par Mellyra Jeu 15 Nov - 21:12

Et bravo et merci pour le compte-rendu Kerigwenn !
Mellyra
Mellyra
Admin

Nombre de messages : 118
Age : 37
Localisation : Dans mon lit ^^
Date d'inscription : 18/10/2007

https://dameschinoises.forumpro.fr

Revenir en haut Aller en bas

Réunion du 15 novembre pour gens ne gérant pas l'affichage.. Empty Re: Réunion du 15 novembre pour gens ne gérant pas l'affichage..

Message par Kerigwenn Ven 16 Nov - 22:14

Embarassed de rien, de rien

Ca pourra toujours servir de mémo en cas d'oubli ou de pertes de feuilles intempestives...

:geek:Sa-rah, tes idées! ^^ cheers
Kerigwenn
Kerigwenn

Nombre de messages : 99
Localisation : ...sur ma chaise.
Date d'inscription : 18/10/2007

Revenir en haut Aller en bas

Réunion du 15 novembre pour gens ne gérant pas l'affichage.. Empty Re: Réunion du 15 novembre pour gens ne gérant pas l'affichage..

Message par Kerigwenn Dim 18 Nov - 21:10

Et bien la perte de feuilles intempestives aura frappé, chez moi en tout cas. Trêves de plaisanteries:

J'ai écrit une fonction (trois, en fait) qui permettrait normalement d'avoir le meilleur déplacement unitaire pour un joueur et une situation de jeu donnée. J'ai pas testé puisque tout le tralala pour jouer contre l'ordi n'a pas été écrit, mais ça devrait fonctionner puisque j'ai réadapté les fonctions écrites par Marie.
Comme je m'intéressais qu'à un demi-coup, j'ai écrit ça en toute ignorance de l'algo minmax. Y'a sans doute plus efficace.

Qui veut voir, et je met où?
Kerigwenn
Kerigwenn

Nombre de messages : 99
Localisation : ...sur ma chaise.
Date d'inscription : 18/10/2007

Revenir en haut Aller en bas

Réunion du 15 novembre pour gens ne gérant pas l'affichage.. Empty Re: Réunion du 15 novembre pour gens ne gérant pas l'affichage..

Message par Kerigwenn Lun 19 Nov - 19:42

Précision utile:

c'est une mini-partie sur l'ensemble de l'IA, elle ne concerne qu'un seul pion d'un joueur considéré.

J'espère que ça rassure les gens qui ont fait de la programmation samedi et qui sont sûrs que je leur ai dammé le pion (haha, c'est le cas de le dire) en faisant exactement la même chose. Honnêtement, ça m'étonnerait.

Hoplà

while( !(criderage"stooooop!") )
{
sayf("Bonnesoirée!");
}
Kerigwenn
Kerigwenn

Nombre de messages : 99
Localisation : ...sur ma chaise.
Date d'inscription : 18/10/2007

Revenir en haut Aller en bas

Réunion du 15 novembre pour gens ne gérant pas l'affichage.. Empty Re: Réunion du 15 novembre pour gens ne gérant pas l'affichage..

Message par Kerigwenn Mar 20 Nov - 2:02

M..ea Culpa les filles, je viens de reprendre mon truc.

Sans le vouloir vraiment, j'ai effectivement écrit une proposition pour la fonction Meilleur_Deplacement_Statique, sauf que je l'ai appellée MeilleurDeplacementUnitaire et qu'elle se divise en trois fonctions.

Désolé. J'aimerai quand même bien savoir ce que vous avez fait, d'autant plus que le grand chef Marie n'a pas semblé aimer mes propositions quand elles les a vues hier soir... ^^
Kerigwenn
Kerigwenn

Nombre de messages : 99
Localisation : ...sur ma chaise.
Date d'inscription : 18/10/2007

Revenir en haut Aller en bas

Réunion du 15 novembre pour gens ne gérant pas l'affichage.. Empty Re: Réunion du 15 novembre pour gens ne gérant pas l'affichage..

Message par Mellyra Mer 21 Nov - 12:14

Hey c'est pas vrai!!
C'est chouette ce que tu as fait, mais je pensais que tu etais allée plus loin, c'est pour ca que j'avais du mal a comprendre ce que ca faisait exactement!


Mais normalement, il faudrait avoir terminé l'IA avant la semaine prochaine selon notre emploi du temps prévisionnel...
Comme on est en retard sur ce point, je pourrai essayer de commencer une ebauche de redaction du rapport.
Ce serait bien aussi si tout le monde pouvait mettre dans la partie "biblio" les titres, auteurs, etc... de ce que vous avez lu, et un bref commentaire sur l'interet de chaque ouvrage(ou site web) (bref= 2-3 lignes max en gros je pense que ca suffira).
Ce sera ca de moins a faire a la derniere minute!!!
Mellyra
Mellyra
Admin

Nombre de messages : 118
Age : 37
Localisation : Dans mon lit ^^
Date d'inscription : 18/10/2007

https://dameschinoises.forumpro.fr

Revenir en haut Aller en bas

Réunion du 15 novembre pour gens ne gérant pas l'affichage.. Empty Re: Réunion du 15 novembre pour gens ne gérant pas l'affichage..

Message par Mellyra Jeu 22 Nov - 21:13

Oui, s'il vous plait, on a BESOIN de savoir ce que vous avez fait!!!
Postez nous au moins un bref résumé.
Vous avez programmé qqch?
Mellyra
Mellyra
Admin

Nombre de messages : 118
Age : 37
Localisation : Dans mon lit ^^
Date d'inscription : 18/10/2007

https://dameschinoises.forumpro.fr

Revenir en haut Aller en bas

Réunion du 15 novembre pour gens ne gérant pas l'affichage.. Empty Re: Réunion du 15 novembre pour gens ne gérant pas l'affichage..

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser