Jeu d'echec tournant sous Windows, avec IA (niveau de l'IA reglable dans le fichier game.c, voir MakeAutoMove())
Bon pour le moment, seul l'alpha beta a été implementé (qui permet quand même une profondeur permettant de battre la plupart des joueurs moyens!).
la fonction d'evaluation du jeu est aussi assez nulle pour l'instant (tient seulement compte des possessions materielles).
ca avance bien tout de même, le jeu est plutôt agréable. Essayez et dites moi!
Source / Exemple :
// Tout dans le zip (sources + exe)
Conclusion :
Compilez avec VC++ 6 et il devrait pas y avoir de pb.
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...)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.