RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Srv: irc.moteurprog.com
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 Jeux de puissance 4

Forum : INTELLIGENCE ARTIFICIELLE ( IA )
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ INTELLIGENCE ARTIFICIELLE ( IA )

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET NON RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGES : [1] [2]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM INTELLIGENCE ARTIFICIELLE ( IA )

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
Freak
Membre du club
Avatar de Freak
Inscrit : 08/02/2004
Messages : 489
Message
#37633
Posté le 14/10/04 à 18:44
Salut,
J'inogure le forum d'IA, je suis actuellement en train de réaliser une IA sur Casio (donc en Basic) qui joura contre l'humain.
J'ai une matrice (tableaux) de 10*10 remplit de 0
l'IA jout en mettant un 1 à la place du 0
et l'humain avec le 2

Je voudrais trouver le moyen de vérifier si un des deux joueur à gagner en mettant 4 pions aligner en diagonal.

Pas bessoin de donner un code en Basic, en français ça suffit.

J'espère avoir été clair.
__________________________
Freak -- Have Fun!

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

Freak
Membre du club
Avatar de Freak
Inscrit : 08/02/2004
Messages : 489
Message
#38620
Posté le 19/10/04 à 18:45
Il y a personne sur ce forum ? Smiley

bon je vais me débrouiller tt seul
__________________________
Freak -- Have Fun!

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

pac
Co-Administrateur
Superviseur :
- Méthodologie.
Modérateur :
- Delphi
Chef de projet(s) :
- Jeu Awalé
- EcoSystem
- MySudoku

Avatar de pac
Inscrit : 08/04/2004
Messages : 6570
Message
#38644
Posté le 19/10/04 à 21:16
Héhé je n'avais pas vu ton message, maintenant je vais venirplus souvent ici.

L'IA est ce que je préfère (comme l'algo mais c pareil).

Hum, moi je le ferai à la main.
Disons que x,y sont les coordonnées du nouveau pion.
Je le ferai d'abord, la diag \ puis la diag /

tu mets une var à 0 les positions de x1 et y1 à x et y.

var = 0; x1=x-1; y1=y-1; while ((case[x1,y1]== bonne valeur) && (x1 >0)&& (y1>0)) { var++; x1--; y1--; } x1=x+1; y1=y+1; while ((case[x1,y1]== bonne valeur) && (x1 <10)&& (y1<10)) { var++; x1++; y1++; } if (var > 2) // C'est gagné.

Puis tu fais pareil sur l'autre diagonale.

C'est une solution parmis d'autres mais elle me paraît bien.
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu]Image.

Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

Freak
Membre du club
Avatar de Freak
Inscrit : 08/02/2004
Messages : 489
Message
#38737
Posté le 20/10/04 à 13:28
Je suppose que c'est du C ou du C++ donc il y a quelque élment à élaicir entre autre :

var++; x1--; y1--;

Il me semble que ++ sert à incrémenter mais je suis pas sur.
Et sinon je ne comprend pas le code en général car pour vérifier si il y a 4pions aligner il faut verifier 4 case différentes.

Perso j'ai commencé un truc dan ce genre :

1->X 1->Y case[x,y] ->A X+1->X case[x,y] ->B X+1->X case[x,y] ->C X+1->X case[x,y] ->D If A=B=C=D=1 IA gagne If A=B=C=D=2 Humain gagne

Il manque bcp d'élément mais le pour le principe j'ai trouvé cela.
__________________________
Freak -- Have Fun!

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Nothing
Membre du club
Avatar de Nothing
Inscrit : 17/03/2004
Messages : 635
Message
#38761
Posté le 20/10/04 à 14:12
Ouaip ++ et -- c est pour incrementer ou decrementer.
__________________________
... Until then, we're better off dead
A smile on the lips and a hole in the head ...

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

pac
Co-Administrateur
Superviseur :
- Méthodologie.
Modérateur :
- Delphi
Chef de projet(s) :
- Jeu Awalé
- EcoSystem
- MySudoku

Avatar de pac
Inscrit : 08/04/2004
Messages : 6570
Message
#38767
Posté le 20/10/04 à 14:18
Non ta méthode n'est pas bonne car il faut tester au moins 4 cas (un par position de ton pion) + tous les cas ou ton pion est proche du bord.

En effet ++ est l'incrémentation, désolé j'oubliais que je n'étais plus dans le C/C++.

Ce qu'il faut faire, c'est partir de ton pion et aller en diagonale vers le haut gauche pour commencer et tant qu'on trouve un pion de la même couleur on incrément une variable qui compte le nombre de bons pions et on continue d'aller dans cette direction.
Quand c'est fini, on garde ce nombre et on refait pareil dans la direction bas /droite jusqu'à ce qu'on ne trouve plus un pion de la même couleur.

donc on obtient le nombre de pions de bonne couleur en diag du notre sans discontinuité.
Si ce nombre est >=3 c'est gagné (il faut penser au notre ce qui fait 4 et+) d'où le >2.
Si ce n'est pas gagné on fait pareil sur l'autre diagonale.

Dans le while on teste aussi si le pion testé est bien dans le plateau de jeu.

De cette façon, on prend tous les cas ou le pion d'origine se trouve en bord ou au milieu de la ligne qui fait gagner en une seule fois au lieu de faire 36 tests et if.

C bon tu as suivi ?
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu]Image.

Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

Freak
Membre du club
Avatar de Freak
Inscrit : 08/02/2004
Messages : 489
Message
#38816
Posté le 20/10/04 à 17:21
Je crois mais j'ai quelque doute.
Procédons point par point, dans ton code à quoi correspond x1=x-1 et y1=y-1 car si j'ai bien compris ce serais x1=10 et y1=10
Et sinon ce code c'est pour vérifier uniquement si un joueur à bon ?

J'ai l'impresion de patoger complétement Smiley
__________________________
Freak -- Have Fun!

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

pac
Co-Administrateur
Superviseur :
- Méthodologie.
Modérateur :
- Delphi
Chef de projet(s) :
- Jeu Awalé
- EcoSystem
- MySudoku

Avatar de pac
Inscrit : 08/04/2004
Messages : 6570
Message
#38830
Posté le 20/10/04 à 17:54
Non x1 et y1 correspondent aux coordonnées de la case à tester pour voir si elle est bon.

x et y correspondent à la case ou l'on vient de mettre le pion.

Et oui ceci ne sert qu'a savoir si un pion mis a un endroit fait gagner ou non un seul joueur.
Ensuite il y a encore des choses a modifs en fonction du joueur qui joue.
Par exemple au lieu de mettre 'bonne valeur' on mets Valeur[x][y] qui retourne la valeur de la case que l'on vient de jouer et ainsi on teste si les cases en diagonale ont la même valeur.

Tu me suis ?
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu]Image.

Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

Freak
Membre du club
Avatar de Freak
Inscrit : 08/02/2004
Messages : 489
Message
#39129
Posté le 21/10/04 à 20:50
Ok, je viens de comprendre que tu vérifie directemment après avoir mis le poins donc prenant en compt le dernier poins, alors que moi j'étais partis du principe que le programme vérifie toute les possibilités sans savoir la place du dernier pions.
Donc d'après cela je vai revoir ton code, mais pas ce soir je suis out Smiley
__________________________
Freak -- Have Fun!

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Freak
Membre du club
Avatar de Freak
Inscrit : 08/02/2004
Messages : 489
Message
#39598
Posté le 24/10/04 à 18:19
je comprend mieux ton code du début maintenent, il ne reste plus qu'a m'éclairer sur un point :

if (var > 2)

car la variable var pourrait avoir la valeur 3, s'il y a 3 pions aligné, il faudrait mettre

if (var > 3)

__________________________
Freak -- Have Fun!

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM INTELLIGENCE ARTIFICIELLE ( IA )



    PAGES : [1] [2]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.