J'ai corrigé quelques bugs de Valisoa UCI. En voici le résultat :
ValisoaUCI.zip
J'ai corrigé quelques bugs de Valisoa UCI. En voici le résultat :
ValisoaUCI.zip
" Le voyage compte plus que la destination. "
ValisoaChess
Bonjour !
Voici ValisoaChess 0.1.2 qui peut trouver l'échecs et mat en demi-coup.
Nombre de critères du choix de coup : 15
Critère rajouté : Échecs et mat
ValisoaChess 0.1.2.rar
" Le voyage compte plus que la destination. "
ValisoaChess
Slt ! Voici la version 0.1.3 de ValisoaChess. Il commence à comprendre la notion d'espace.
ValisoaChess 0.1.3.rar
Nombre de critères : 16
Critère rajouté : Cases contrôlées.
" Le voyage compte plus que la destination. "
ValisoaChess
Bonsoir,
Voici la version 0.1.4 de ValisoaChess.
Nombre de critères de choix de coup : 17
Critère rajouté : Tour sur une colonne ouverte.
ValisoaChess 0.1.4.zip
" Le voyage compte plus que la destination. "
ValisoaChess
Je viens d'essayer cette nouvelle version.
Lorsque je laisse le jeu débuter la partie, il se met rapidement en grande difficulté en choisissant d'attaquer à tout crin. Est-il prévu d'utiliser un livre d'ouvertures, ou est-ce déjà le cas ?
Règles du forum
Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
Mes tutoriels et sources Pascal
Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]
Bonjour Alcatîz.
ValisoaChess n'utilise pas encore de livre d'ouverture. Il se contente juste de jouer un coup qui répond aux critères d'analyse que je lui ai donné. Bien sûr, je lui rajouterai un livre d'ouverture dans des prochaines versions.
Avant de lui rajouter un quelconque livre " d'ouverture" ou " de finale" j'aimerais voir jusqu'où peut-il aller en n'utilisant que les critères d'analyse. Il a maintenant 17 critères et son niveau est aux alentours de 1 000 ELO (fide) d'après les tests que j'ai fait avec d'autres logiciels ayant une classification Elo. Ensuite, quand j'atteindrai la limite raisonnable de nombre de critères possibles dans un moteur d'échecs, je lui rajouterai un (ou plusieurs) algorithme de recherche de meilleur coup tout en n'ayant pas de "livre".
C'est à la fin que lui rajouterai un livre d'ouverture. De cette façon je saurai quelle est sa véritable force (sans base de données).
Merci de l'avoir testé et soulevé ce problème. Je pense que le niveau de ValisoaChess augmente au fur et à mesure que je lui rajoute des nouveaux critères d'analyse de meilleur coup.
" Le voyage compte plus que la destination. "
ValisoaChess
Bonjour tout le monde !
Voici des questions qui me hantent tous les jours. Pouvez-vous les répondre ne serait ce que me donner une simple idée ou conseil ?
1- Un moteur d'échecs a environ combien de critères d'analyse de meilleur coup ? Je parle ici des meilleurs logiciels d'échecs comme Stockfish, Houdini, Komodo...
2- Quel est le meilleur algorithme de recherche qu'on peut utiliser ? Il y en a plusieurs, mais j'aimerais savoir celui qui donnerait le meilleur résultat quand on l'utilise dans un moteur d'échecs.
3- Quelles sont les conditions à remplir pour qu'un moteur d'échecs puisse être dans le TOP 10 des meilleurs : http://www.computerchess.org.uk/ccrl/4040/index.html
A titre de comparaison :
ValisoaChess 0.0.2 a moins de 25 ELO avec 2 critères d'analyse.
ValisoaChess 0.1.4 a 1 005 Elo avec 17 critères d'analyse.
SugaR XPRO 1.2 (Le N°1 mondial) a 3 411 ELO ( avec combien de critères d'analyse ? )
Houdini 6 a 3 406 ELO ( avec combien de critères d'analyse ? )
Merci d'avance pour les réponses.
" Le voyage compte plus que la destination. "
ValisoaChess
Bonjour !
D'après ma propre expérience et aussi d'après ce que j'ai pu lire sur le sujet, le seul moyen de donner de la force à un programme d'échecs est une recherche en profondeur, avec l'algorithme "minimax" ou l'une de ses variantes plus sophistiquées. Une évaluation sans profondeur, même avec beaucoup de critères, ne donnera jamais un très bon résultat. Inversement, une évaluation en profondeur, avec comme seul critère la différence de matériel, donnera un résultat plus satisfaisant.
Mon site personnel consacré à MSEide+MSEgui : msegui.net
Merci pour cette idée. Je vais donc injecter un algorithme minmax dans le code ValisoaChess.
" Le voyage compte plus que la destination. "
ValisoaChess
salut
utilise le avec l'alpha beta afin d'optimiser les recherches
Blaise PascalNous souhaitons la vérité et nous trouvons qu'incertitude. [...]
Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
PS : n'oubliez pas le tag
Merci anapurna ! Je compte bien en utiliser.
" Le voyage compte plus que la destination. "
ValisoaChess
Salut
Cela faisait un petit moment que je n'avais pas regardé le code.
Il y a quelques améliorations que tu peux faire :
Dans
tu peux remplacer
Code : Sélectionner tout - Visualiser dans une fenêtre à part Function GestiondEchecs(Depart,Arrivee : byte; Piece : PiecePourTous; Trait : shortint) : boolean;
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part for i:= 0 to 99 do PieceChess[i] := Piece[i]; { Transfert d'état de l'échiquier à la variable locale }
Un truc un peu blizzard dans
Code : Sélectionner tout - Visualiser dans une fenêtre à part move(Piece[0],PieceChess[0],sizeof(Piece)); { Transfert d'état de l'échiquier à la variable locale }
je trouve ce code
Code : Sélectionner tout - Visualiser dans une fenêtre à part Function Evaluation(nbCoup : byte) : string; { Evalue l'état du jeu et renvoi le meilleur coup }
pourquoi ne pas faire directement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Case Piece[CaseArrivee]*(-Trait) of { On ajoute la valeur de la pièce à capturer au nombre des points } Dame : Pointmixte[i] := Pointmixte[i]+Dame; Tour : Pointmixte[i] := Pointmixte[i]+Tour; Fou : Pointmixte[i] := Pointmixte[i]+Fou; Cavalier : Pointmixte[i] := Pointmixte[i]+Cavalier; Pion : Pointmixte[i] := Pointmixte[i]+Pion; end;
Bon j'ai pas tout décortiqué, bon courage pour la suite
Code : Sélectionner tout - Visualiser dans une fenêtre à part Pointmixte[i] := Pointmixte[i]+Piece[CaseArrivee]*(-Trait); { On ajoute la valeur de la pièce à capturer au nombre des points }
Blaise PascalNous souhaitons la vérité et nous trouvons qu'incertitude. [...]
Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
PS : n'oubliez pas le tag
" Le voyage compte plus que la destination. "
ValisoaChess
" Le voyage compte plus que la destination. "
ValisoaChess
salut
je viens de me relire le case n'est pas nécessaire dans ma déclaration
il fallait lire
c'est plus simple et logiquePointmixte[i] := Pointmixte[i]+ Piece[CaseArrivee]*(-Trait);
Blaise PascalNous souhaitons la vérité et nous trouvons qu'incertitude. [...]
Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
PS : n'oubliez pas le tag
oui, t'as raison. C'est plus simple. Comment est-ce que je n'ai pas pu voir cela ?
Je vais revérifier mon code pour voir s'il y a encore des trucs à simplifier comme celui-là. Merci.
" Le voyage compte plus que la destination. "
ValisoaChess
Bonjour ! J'ai le plaisir d'annoncer que mon premier objectif concernant ValisoaChess est atteint. Si vous avez pu lire ma première publication, j'ai mentionné que je cherchais à créer un logiciel d'échecs avec le minimum de code possible, écrit en langage Pascal. Cet objectif est désormais atteint grâce à la version 0.0.1 de ValisoaChess que vous pouvez voir ici : ValisoaChess 0.0.1.zip
Je l'ai écrit avec seulement 221 lignes de code. Même si le minimum de code était mon objectif principal, j'ai quand même respecté quelques principes et styles de programmation à savoir :
- J'ai fait en sorte qu'il soit en minimum de code possible (221 lignes seulement),
- Simple
- Facile à comprendre même pour un débutant en programmation.
- Le code est assez commenté
- Le choix des identificateurs ont été soigneusement réfléchit.
- Le code est aéré et sa structure est propre et bien arrangée. L'espacement, l'indentation et le saut de ligne ont été bien fait.
Bien sûr, on peut encore y trouver de quoi à corriger mais je crois que si on veut DÉBUTER à programmer un logiciel d'échecs en langage Pascal, ValisoaChess 0.0.1 est une bonne référence à prendre comme exemple.
" Le voyage compte plus que la destination. "
ValisoaChess
Cet objectif semble être une grande ambition et de difficulté élevée vu mes propres principes que je dois respecter (mentionnés à la 1ère publication) mais j'y crois vraiment. En Plus, avec les résultats des tests que j'ai effectués à DEMI-COUP contre les grands logiciels comme stockfish, Komodo, Spike, AnMon, Fruit, Hermann, Strelka ... m'ont montré que leurs FONCTIONS D'ÉVALUATION sont dépassées par celle de ValisoaChess (0.1.7) dans certaines positions particulières.
A titre d'exemple :
- sur 100 parties jouées contre Spike (36èm mondial) ValisoaChess 0.1.7 a obtenu 50 parties nulles.
- sur 100 parties jouées contre Strelka (23èm mondial) ValisoaChess 0.1.7 a obtenu 50 parties nulles.
- sur 100 parties jouées contre SCHACH, qui calcul jusqu'à 4 demi-coup, ValisoaChess qui ne calcul qu'à 1 demi-coup a obtenu 50 victoires, 50 nulles et aucune défaite (ValisoaChess 75 # 25 SCHACH).
- sur 100 parties jouées contre AnMon (148èm mondial) ValisoaChess a obtenu 41 victoires et 18 parties nulles.
- avec certaines modifications des valeurs de critères d'évaluation de la version 0.1.7, sur 100 parties jouées contre Houdini (2èm mondial), ValisoaChess a obtenu 50 parties nulles.
Le classement que j'ai pris se trouve ici : http://www.computerchess.org.uk/ccrl/4040/
Lors des tests, j'ai utilisé Arena et j'ai intégré le protocole UCI dans ValisoaChess. Arena se trouve là : http://www.playwitharena.com/?Download
Ma déduction : bientôt, ValisoaChess les écraserait tous à demi-coup. Ce qui veut dire que la fonction d'évaluation de ValisoaChess serait très bientôt meilleure que les siennes, y compris celle de Stockfish ou de Houdini.
Pour ce qui est d'algorithme de recherche comme MinMax et autres, c'est une autre histoire que ValisoaChess aborderait après la future victoire de sa fonction d'évaluation.
" Le voyage compte plus que la destination. "
ValisoaChess
Bonjour !
Voici la version 0.1.6 de ValisoaChess. Je lui ai rajouté une liste des coups joués qu'on peut consulter à tout moment sur son interface.
ValisoaChess 0.1.6.zip
" Le voyage compte plus que la destination. "
ValisoaChess
A la demande des utilisateurs, j'ai rajouté une liste des coups sur l'interface.
" Le voyage compte plus que la destination. "
ValisoaChess
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