cs_AmK
Messages postés368Date d'inscriptionjeudi 13 mars 2003StatutMembreDernière intervention27 janvier 2010
-
12 juil. 2003 à 15:59
Chewbi666
Messages postés12Date d'inscriptionlundi 1 mai 2006StatutMembreDernière intervention22 mai 2006
-
3 mai 2006 à 09:13
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Chewbi666
Messages postés12Date d'inscriptionlundi 1 mai 2006StatutMembreDernière intervention22 mai 2006 3 mai 2006 à 09:13
Pas mal du tout ! Je l'ai aussi mis mat mais il a répliqué "...Dxb2 les blancs sont échecs et mat!" ;o))
Très bon début (après avoir passé 3 mois pour un jeu de dames correct je sais que c pas facile), pour la suite (dans l'ordre):
- rajoute les roques (et les prises en passant?! pas essayé, mais ce n'y est probablement pas non plus)
- mets une meilleure fonction d'évaluation (www.france-echecs.com par exemple pour demander à une bande d'allumés passant leur temps derrière leur échiquier ce qu'ils en pensent ;o))
- améliore l'alpha-beta si ce n'est pas déjà fait (nullMove, poursuite de l'evaluation en cas de promotion, évaluation statique sans prises possible..etc)
- ajoute la nulle par répétition (3 fois la meme situation, meme joueur au trait) et par 50 coups (50 coups [1 coup=coup blanc+coup noir] sans prise ni déplacement de pion = nulle)
D'ici là j'espère que mon IA d'échecs sera aussi sur pattes :-)
cs_Stormy
Messages postés255Date d'inscriptionsamedi 20 avril 2002StatutMembreDernière intervention16 janvier 2007 24 mars 2006 à 00:09
Je viens de battre ton jeu d'échecs (belle partie) mais il se présente un bug. Alors qu'il se trouve en 'échec et mat', il se permet de poursuivre la partie. Je suis assez content de ton petit programme et j'aurais voulu t'aider à discerner ce bug.
J'ai une capture d'écran pour prouver cette prétention
contacte-moi snakeee@free.fr pour l'obtenir ++
cs_cdf
Messages postés1Date d'inscriptionmardi 26 juillet 2005StatutMembreDernière intervention20 septembre 2005 20 sept. 2005 à 18:00
Hello,
j'ai eu plusieurs fois le même problème qu'Archaoniro.
dans le code, il y a :
// C'est a l'ordinateur de jouer
if(game.state !CHESS_MATE && game.cur_color BLACK)
{
// Calcul du coup que va jouer l'ordinateur
GetBestMove(&best_move, &game, BLACK, 3, 3);
...
Avant de calculer son meilleur coup,le prog vérifie qu'il n'est pas en "echec et mat" mais ne fait pas de traitement particulier s'il est en "simple echec". Dès lors, chaque fois qu'il est mis en echec, il trouve plus interressant de mettre l'adversaire en "echec et mat" (quand il le peut). J'ai pas encore eu trop le temps de regarder comment résoudre le prob mais si je trouve, je te prévient.
A part ça, chapeau bas pour ce joli prog.
archaoniro
Messages postés1Date d'inscriptionjeudi 23 juin 2005StatutMembreDernière intervention14 septembre 2005 14 sept. 2005 à 16:56
Hello...
Le jeu est bien fait, j'essaie de débuter en C++ et pour l'instant je ne sais rien faire côté graphisme, mouvement, son.. rien en mdr. Donc bravo pour ce jeu.
par contre, je n'écrivais pas pour ça à la base, mais plutôt pour signaler une erreur de taille.
J'ai mit échec et mat le roi noir, mais le jeu ne l'a pas prit en compte, le noir a pû jouer à nouveau et m'as mit échec et mat... Le jeu vérifie-t'il si il peut mettre le joueur mat avant de vérifier si l'IA est mat ? A voir lol. Sinon encore bravo
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 12 déc. 2004 à 18:46
j'avais testé ton jeu il y a longtemps et je me suis apercu, je ne sais plus si c'était dans les prises en passant ou dans les roques mais il y avait des petits problèmes de légalitée des coups...
Sinon, ton ia est pas mal, masi sans lesroques, c'est un peu plus des échecs...
Sinon, quand je regarde ta façon de jouer, en général, les IAs ne sont pas assez conne pour se prendre un berger...
Tu dois commencer par prendre le centre puis te déveloper...
Je te donnes un ex d'ouverture pas trop mal :
e4
Cc3
Cc6
F... (tu peux faire b5 masi c pas terrible ou e2 ou encore d3...)
O-O
puis d4 pour sortir l'autre fou...
On commence par sortir les pièces moyennes puis ensuite on roque, on sort les dèrnières petites pièces, puis on mets les deux tours sur la même ligne en mettant la dame sur une colone ouverte si possible...
(ça fait bcp à mettre dans une eval fonction...)
adrien178
Messages postés3Date d'inscriptiondimanche 12 janvier 2003StatutMembreDernière intervention15 février 2005 30 déc. 2003 à 15:54
Iwin
Messages postés24Date d'inscriptionsamedi 29 mars 2003StatutMembreDernière intervention23 juillet 2004 26 sept. 2003 à 15:10
Ouais, bah c inpressionnant de ce prendre une raclée par ton prog, j'vais étudier l'IA paske ça a vraimment l'air interessant.
AluCaRDo
Messages postés1Date d'inscriptiondimanche 7 septembre 2003StatutMembreDernière intervention 7 septembre 2003 7 sept. 2003 à 21:21
salut !
Moi j'en ai fait un avec alpha beta, killer move (pour trier et peut etre ainsi enlever des bouts d'arbres avec alpha beta), et notation sur materiel et positions ... Le probleme est qu'il est sous java donc il rame ... quel est l'idiot qui fait une IA sous java me direz vous ... ben moi !!! ... je vais donc le passer sous C++ en essayant d'ajouter des reseaux de neurones (si j'y comprends quelque chose car pour l'instant je n'y connais rien !!!) ...
Je n'ai pas fait tourner ton prog mais a en voir le screenshot tu n'as pas bcp d'options ... moi je trouve que des options de genre 2 players, revenir coup precedent, conseil ordinateur, reglage niveau, etc ... ca fait doubler l'interet qu'on peyt porter a un jeu d'echec ...
Si c'est implementé, ne tiens pas compte de ces remarques !!
chichi3373
Messages postés3Date d'inscriptionvendredi 22 août 2003StatutMembreDernière intervention28 août 2003 28 août 2003 à 20:12
bonjour Nicolus
Je programme aussi un jeu d'echec, qui pour l'instant vos le tient ( un poil plus lent mais je suis en delphi), Je voulais juste te dire que l'alpha beta est utilisé pour les arbre trié.
Pour ma part je fais donc une évaluation de l'ensemble de la liste de mouvement possible (pas iteré donc) puis je la trie et enfin j'applique l'alpha beta .
Je peut tjrs perdre des coup plus interessant (ce n'est qu'une evaluatiion apres tout), mais les chances sont plus faibles.
Vue ton system de notation actuel(materiel) ca importe peu, il est rare que des pieces réapparaissent, mais bon si tu decide de le changer (genre activer tes bonus de position) ca peut etre utile, Moi je suis entrain de tester des reseaux de neuronnes.
mathmoi
Messages postés1Date d'inscriptionvendredi 15 août 2003StatutMembreDernière intervention15 août 2003 15 août 2003 à 16:17
Bonjour Nicolus,
Je programme aussi un jeu d'échecs.
Pour l'instant je n'ait implémenté qu'Alpha-Beta avec une fonction d'évaluation simple (le matériel) toutefois, mon programme est facilement batable, parcequ'ils ne peut pas explorer plus de 5 profondeurs dans un temps raisonable.
J'aimerais savoir à quelle profondeur ton programme peut jouer et/ou combien de coups à la secondes il explore.
Mathieu.
cs_Nicolus
Messages postés16Date d'inscriptionmercredi 18 juillet 2001StatutMembreDernière intervention15 juillet 2003 15 juil. 2003 à 19:12
merci. jvé essayer d'ameliorer tout ca mais pour le moment, je suis sur un autre projet, tout aussi interessant : le pb du voyageur de commerce! c'est plutot passionnant, donc le jeu d'echecs patientera un peu... en plus, j'ai des idees d'ameliorations pour le puissance 4 que j'ai posté il y a un petit moment donc, a vous de bosser!:)) -> implémenter au moins une bonne eval, voire le "quiescence search", plus l'"iterative deepening", une generation de mouvements plus rapide a l'aide de lookup tables, etc...
cs_LordBob
Messages postés2865Date d'inscriptionsamedi 2 novembre 2002StatutMembreDernière intervention11 mai 20099 14 juil. 2003 à 21:03
ouais c clair, c'est loin d'etre mal...
cs_GoldenEye
Messages postés527Date d'inscriptionvendredi 14 septembre 2001StatutMembreDernière intervention 6 octobre 20084 14 juil. 2003 à 15:36
Ah enfin un programme/source intéréssante. Bravo pour l'effort
Compilation : pas de problème, le source est bien commenté et assez clair.
Exécution : Le programme tourne bien mais la fonction d'évaluation est à améliorer (ce qui ralentira immanquablement le programme malheureusement...)
NB : j'ai réglé à 10 la profondeur de AlphaBeta et le prog a planté... A 8, c'est vraiment lent... mais c'est normal !!!
Rajoute un menu d'options et ce sera super !
Bonne continuation
cs_Chouchou182
Messages postés252Date d'inscriptionvendredi 13 juin 2003StatutMembreDernière intervention25 avril 20111 13 juil. 2003 à 18:33
Bravo
Belle interface, excellente IA !!!
(Pas encore réussi a gagner)
Comment on rocke (si c'est possible) ?
A++
Encore Bravo!!!
cs_Nicolus
Messages postés16Date d'inscriptionmercredi 18 juillet 2001StatutMembreDernière intervention15 juillet 2003 12 juil. 2003 à 20:47
vous allez pouvoir tester, j'ai rajoute resource.rc dans le zip!
par contre vous risquez d'etre decu en voyant la fonction EvaluateScore() -> seules les possessions materielles sont prises en compte (pour l'instant hehehe)
Funto66
Messages postés1267Date d'inscriptionmercredi 1 janvier 2003StatutMembreDernière intervention28 février 20074 12 juil. 2003 à 19:13
T'as oublier de mettre resource.rc :(
Je peux pas compiler parce que je connais pas les noms à donner aux ressources...
Mais comme AmK, je pense que ça doit être pas mal !
cs_AmK
Messages postés368Date d'inscriptionjeudi 13 mars 2003StatutMembreDernière intervention27 janvier 20101 12 juil. 2003 à 15:59
je n'ai pas compilé mais rien qu'en voyant le screenshot , ça a l'air pas mal !
3 mai 2006 à 09:13
Très bon début (après avoir passé 3 mois pour un jeu de dames correct je sais que c pas facile), pour la suite (dans l'ordre):
- rajoute les roques (et les prises en passant?! pas essayé, mais ce n'y est probablement pas non plus)
- mets une meilleure fonction d'évaluation (www.france-echecs.com par exemple pour demander à une bande d'allumés passant leur temps derrière leur échiquier ce qu'ils en pensent ;o))
- améliore l'alpha-beta si ce n'est pas déjà fait (nullMove, poursuite de l'evaluation en cas de promotion, évaluation statique sans prises possible..etc)
- ajoute la nulle par répétition (3 fois la meme situation, meme joueur au trait) et par 50 coups (50 coups [1 coup=coup blanc+coup noir] sans prise ni déplacement de pion = nulle)
D'ici là j'espère que mon IA d'échecs sera aussi sur pattes :-)
24 mars 2006 à 00:09
J'ai une capture d'écran pour prouver cette prétention
contacte-moi snakeee@free.fr pour l'obtenir ++
20 sept. 2005 à 18:00
j'ai eu plusieurs fois le même problème qu'Archaoniro.
dans le code, il y a :
// C'est a l'ordinateur de jouer
if(game.state !CHESS_MATE && game.cur_color BLACK)
{
// Calcul du coup que va jouer l'ordinateur
GetBestMove(&best_move, &game, BLACK, 3, 3);
...
Avant de calculer son meilleur coup,le prog vérifie qu'il n'est pas en "echec et mat" mais ne fait pas de traitement particulier s'il est en "simple echec". Dès lors, chaque fois qu'il est mis en echec, il trouve plus interressant de mettre l'adversaire en "echec et mat" (quand il le peut). J'ai pas encore eu trop le temps de regarder comment résoudre le prob mais si je trouve, je te prévient.
A part ça, chapeau bas pour ce joli prog.
14 sept. 2005 à 16:56
Le jeu est bien fait, j'essaie de débuter en C++ et pour l'instant je ne sais rien faire côté graphisme, mouvement, son.. rien en mdr. Donc bravo pour ce jeu.
par contre, je n'écrivais pas pour ça à la base, mais plutôt pour signaler une erreur de taille.
J'ai mit échec et mat le roi noir, mais le jeu ne l'a pas prit en compte, le noir a pû jouer à nouveau et m'as mit échec et mat... Le jeu vérifie-t'il si il peut mettre le joueur mat avant de vérifier si l'IA est mat ? A voir lol. Sinon encore bravo
12 déc. 2004 à 18:46
Sinon, ton ia est pas mal, masi sans lesroques, c'est un peu plus des échecs...
Sinon, quand je regarde ta façon de jouer, en général, les IAs ne sont pas assez conne pour se prendre un berger...
Tu dois commencer par prendre le centre puis te déveloper...
Je te donnes un ex d'ouverture pas trop mal :
e4
Cc3
Cc6
F... (tu peux faire b5 masi c pas terrible ou e2 ou encore d3...)
O-O
puis d4 pour sortir l'autre fou...
On commence par sortir les pièces moyennes puis ensuite on roque, on sort les dèrnières petites pièces, puis on mets les deux tours sur la même ligne en mettant la dame sur une colone ouverte si possible...
(ça fait bcp à mettre dans une eval fonction...)
30 déc. 2003 à 15:54
if(score >(valeur_pieces[ROI] / 10))
{
etat = EN_ECHEC;
30 déc. 2003 à 15:45
if(score >(pieces_values[KING] / 10))
{
state= IN_CHESS;
pouvez vous m'éclairer svp, merci !
26 sept. 2003 à 15:10
7 sept. 2003 à 21:21
Moi j'en ai fait un avec alpha beta, killer move (pour trier et peut etre ainsi enlever des bouts d'arbres avec alpha beta), et notation sur materiel et positions ... Le probleme est qu'il est sous java donc il rame ... quel est l'idiot qui fait une IA sous java me direz vous ... ben moi !!! ... je vais donc le passer sous C++ en essayant d'ajouter des reseaux de neurones (si j'y comprends quelque chose car pour l'instant je n'y connais rien !!!) ...
Je n'ai pas fait tourner ton prog mais a en voir le screenshot tu n'as pas bcp d'options ... moi je trouve que des options de genre 2 players, revenir coup precedent, conseil ordinateur, reglage niveau, etc ... ca fait doubler l'interet qu'on peyt porter a un jeu d'echec ...
Si c'est implementé, ne tiens pas compte de ces remarques !!
28 août 2003 à 20:12
Je programme aussi un jeu d'echec, qui pour l'instant vos le tient ( un poil plus lent mais je suis en delphi), Je voulais juste te dire que l'alpha beta est utilisé pour les arbre trié.
Pour ma part je fais donc une évaluation de l'ensemble de la liste de mouvement possible (pas iteré donc) puis je la trie et enfin j'applique l'alpha beta .
Je peut tjrs perdre des coup plus interessant (ce n'est qu'une evaluatiion apres tout), mais les chances sont plus faibles.
Vue ton system de notation actuel(materiel) ca importe peu, il est rare que des pieces réapparaissent, mais bon si tu decide de le changer (genre activer tes bonus de position) ca peut etre utile, Moi je suis entrain de tester des reseaux de neuronnes.
15 août 2003 à 16:17
Je programme aussi un jeu d'échecs.
Pour l'instant je n'ait implémenté qu'Alpha-Beta avec une fonction d'évaluation simple (le matériel) toutefois, mon programme est facilement batable, parcequ'ils ne peut pas explorer plus de 5 profondeurs dans un temps raisonable.
J'aimerais savoir à quelle profondeur ton programme peut jouer et/ou combien de coups à la secondes il explore.
Mathieu.
15 juil. 2003 à 19:12
14 juil. 2003 à 21:03
14 juil. 2003 à 15:36
Compilation : pas de problème, le source est bien commenté et assez clair.
Exécution : Le programme tourne bien mais la fonction d'évaluation est à améliorer (ce qui ralentira immanquablement le programme malheureusement...)
NB : j'ai réglé à 10 la profondeur de AlphaBeta et le prog a planté... A 8, c'est vraiment lent... mais c'est normal !!!
Rajoute un menu d'options et ce sera super !
Bonne continuation
13 juil. 2003 à 18:33
Belle interface, excellente IA !!!
(Pas encore réussi a gagner)
Comment on rocke (si c'est possible) ?
A++
Encore Bravo!!!
12 juil. 2003 à 20:47
par contre vous risquez d'etre decu en voyant la fonction EvaluateScore() -> seules les possessions materielles sont prises en compte (pour l'instant hehehe)
12 juil. 2003 à 19:13
Je peux pas compiler parce que je connais pas les noms à donner aux ressources...
Mais comme AmK, je pense que ça doit être pas mal !
12 juil. 2003 à 15:59