Après 3 heures d'archarnement, j'ai enfin réussi à gagné une partie.
Sub0, bravo c'est du beau travail!
Après 3 heures d'archarnement, j'ai enfin réussi à gagné une partie.
Sub0, bravo c'est du beau travail!
il est un peu plus puissant que celui que j'ai fait (le tien doit valoir 1400elo soit un niveau relativement correct pour amateur et plutôt moyen pour un joueur de club ^^
sympa en tout cas
euh je me disais, au lieu de me taper 20 heure ou + de temps à taper les ouvertures, quelqu'un saurait-il où je pourrais trouver une bibliothèque d'ouverture ? (sous un format que je puisse traiter avec un algo, dans un fichier texte par exemple)
merci d'avance !
Salut!
Je n'ai pas encore développé les ouvertures...
Je comptais le faire prochainement en me basant sur cette lib :
http://sub0.developpez.com/delphi/gnuchessbook.txt
Au final, j'aimerais pouvoir donner au programme une série de fichiers PGN et qu'il se charge de les utiliser pour calculer les ouvertures. Cela pourrait-être sympa je pense de préparer quelques séries des grands joueurs. On obtiendrait alors les ouvertures diverses et ciblées où le joueur pourrait choisir le style de "son adversaire"...
à+
merci
oui genre choisir "jouer contre kasparov" avec la bibliothèque des parties jouées par kasparov ^^
mais à mon avis il faut aussi insérer dans la biliothèque, les "mauvais" coups d'ouverture, avec la réponse adéquate, comme ça l'ordinateur répondra correctement à un mauvais coup du joueur ! (mais si on fait ça il faudra ajouter une notion de force à chaque coup, c'est à dire 2 pour bon, 1 pour moyen, 0 pour mauvais, et l'ordinateur lui ne choisirait que les branches valant 1 ou 2, mais aurait quand même les réponses aux mauvais coups valant 0 joués par le joueur)
j'ai un exemple concret : e2e4 e7e5 g1f3 et la : f7f6 est un mauvais coup auquel on répond f3e5 qui semble dénué de sens ^^
en fait en développant ses pièces trankilou on gagne sans trop de pb, mais c'est du beau boulot quand même! il ne donne pas de pièces betement, voit les menaces..etc.
J'essaye aussi de faire une IA d'échecs en ce moment, mais j'ai un bug pendant l'analyse des coups (java.util.ConcurrentModificationException (dsl si je ne suis pas sur le bon forum ;o)), et les seules parties que je peux faire se jouent en profondeur d'analyse 1 demi coup ;o)
Salut!Je ne sais pas si tu as remarqué, mais il ya une trackBar à gauche de la fenêtre, sous la liste, qui permet de définir le temps de reflexion accordé à l'IA. Perso, j'arrive limite à le battre avec un temps de reflexion d'une seconde... alors j'imagine avec un temps plus long !Envoyé par Ben0007
A propos de Java, j'avais aussi essayé plusieurs démos et programmes d'échecs réalisés avec Java, mais aucun d'entre eux ne m'a convaincu d'utiliser Java pour développer le mien. Ils ont tous plus ou moins bugués au même niveau -> la recherche du meilleur coups à jouer... Cela est finalement compréhensible puisque Java est une surcouche système, il prend déjà pas mal de ressources en étant un intermédiaire de plus. Pour obtenir les meilleurs résultats possibles, il faut s'attaquer directement au système (langage machine, genre l'assembleur). Malgré tout, ne te décourage pas, le développement d'une IA d'échec est vraiment très intéressant, ça vaut le coups de se prendre la tête avec le code (voir les liens donnés dans les posts précédents concernants les techniques de recherche), à+
Bon alors il ma fait 3 fois échecs de la même façons et nulle, alors que j'était mal barré. Sinon, faudrait qu'il varie plus souvent ses ouvertures, répondre pratiquement toujours C5 à E4, ça devient lassant...
Sinon il se débrouille bien...
Sinon pour gagner plus facilement, il faut vite sortir du début et éviter les finales, ne pas échanger de pièces, c'est dans ces moments que les ordis ont le plus de mal à calculer...
En effet, je dois encore programmer la fonction des ouvertures (voir les messages précédents)... Au niveau de la force du jeu, c'est encore plus facile avec un Pentium 2 ou en surchargeant le proc avec d'autres tâches. On peut aussi interrompre la recherche en cours pour forcer L'IA à jouer en cliquant sur le bouton gauche de la souris... En ce qui concerne le pat suite à la répétition d'un même coups, je vais regarder si je peux améliorer l'algo; Dans le cas où l'IA possède une meilleure position que son adversaire, elle doit éviter le pat, sinon, chercher le nul me semble mieux que la défaite, non ?
Merci.
dans la fonction qui évalue la position tu dois tenir compte des coups précédents !
si 3 positions identiques, ou 50 coups sans prise, l'évaluation doit devenir = 0, et donc automatiquement si l'ordi est en avantage il ne cherchera pas le nul, contrairement au cas ou il serait en train de perdre !
l'algo du minmax fait le reste, y'a juste l'évaluation de la position qu'il faut changer selon moi !
En fait, je possède une fonction pour déterminer si la partie est (ou devient nulle) :Pour le moment, cette fonction sert juste à l'arbitre et à interrompre la recherche...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Function DrawGame: Boolean;
Je vais donc l'utiliser pour l'évaluation, exactement comme tu me l'as conseiller.
J'avais récemment ajouté une pénalité pour la perte de la position du roque.
Le code à ajouter pour le pat se situe au même niveau. Je regarderai ça demain tranquillement...
Merci et bonne nuit
He bien , quand je pense que j'en ai vu la genése de ce jeu , félicitation , tu as fais quelque chose de tres estetitque et de tres bien ficelé .
oué! D'ailleurs si tu te sens toujours de faire un M3D...
à+
Version 0.2d
Win XP pro SP2
N'a pas fonctionné les 3 premiers lancements.
1er et 2eme -> erreur "messages"
3ème -> "Application windows 16 bits: mémoire insuffisante"
Depuis, ça fonctionne.
Salut!
Tout d'abord je te souhaite la bienvenue dans les forums de Developpez.com.
Merci pour ton test, cependant j'ai arrêté le développement de cette version "16bits" il ya presque un an...
J'ai traduis le code en 32 bits pour obtenir pour le moment cette version :
http://sub0.developpez.com/delphi/exe/TableB5.zip
Ce programme est également compatible avec les émulateurs Windows sous Linux (Wine & CrossOver). Il possède la particularité d'être redimensionnable, on peut naviguer dans la liste des coups, on peut régler la luminosité et le contraste, etc... Prochainement, on pourra choisir l'image (texture) pour la table. Je dois encore terminer de programmer les ouvertures et le tchat, mais maintenant que j'ai repris le travail, je n'ai plus trop de temps à consacrer au développement du jeu, mais je reste motivé.
Encore merci, à+
Je suis pas vraiment nouveau, regarde ma date d'inscriptionEnvoyé par Sub0
Mais c'est vrai que ça fait pas mal de temps que je n'avais pas posté, par manque de temps. Désolé d'avoir testé la mauvaise version, j'suis vraiment à l'ouest parfois
moi je suis partant , il faut que emaile moi , et on regarde ca !!!
Salut !Je t'ai déjà tout expliqué ce que je voulais -> au plus simple !Envoyé par charly
Les détails ne sont pas un souci lorsqu'on n'a même pas le minimum.
Je t'ai donné l'échiquier, les pièces, les textures... Il ne reste plus qu'à l'implémenter avec Delphi.
Si possible, je souhaite intègrer un moteur 3D avec Direct3D et OpenGL que l'utilisateur puisse choisir.
Si cela ne te dis rien, alors tanpis, à+
rebonjour sub0 ça fait longtemps que je ne suis plus venu ...
tu as bien avancer dans ton projet c'est extra ^^
juste un truc tu as abandonné l'IA ou tu la remettra plus tard...?
edit: a non j'avais pas vu les case a cocher een bas ;-) c'est bon...
Salut!
Non, l'IA est suffisemment forte, il suffit de paramètrer le temps de reflexion selon la puissance désirée (et fonction de la puissance du pc également). Manque surtout les ouvertures, pouvoir choisir le style de jeu (choix d'un grand joueur par exemple), le calcul des Elos... Et restera enfin le tchat pour jouer sur internet plus quelques options graphiques. Faudra aussi que je m'occupe de réaliser un site, un forum pour ce projet. Tu trouveras la dernière version ici, comme d'hab, et les sources de l'arbitre ici.
à+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager