Téléchargé 8 fois
Vote des utilisateurs
0
0
Détails
Licence : Non renseignée
Mise en ligne le 23 décembre 2013
Plate-forme :
Windows
Langue : Français
Référencé dans
Navigation
JS-Echecs
JS-Echecs
C'est un programme didactique de jeu d'échecs, adapté de JS-Schach (jeu d'échecs de Jürgen Schlottke).
Cette version du programme propose une interface graphique basée sur la librairie OWL. Le programme a été développé pour Virtual Pascal 2.1.
Mise à jour 21 décembre 2013 : La nouvelle version du jeu inclut le livre d'ouvertures du programme Pro Deo d'Ed Schröder.
Cette version du programme propose une interface graphique basée sur la librairie OWL. Le programme a été développé pour Virtual Pascal 2.1.
Mise à jour 21 décembre 2013 : La nouvelle version du jeu inclut le livre d'ouvertures du programme Pro Deo d'Ed Schröder.
Bonjour Alcatîz, et merci pour l'essai.
Il y avait une erreur, suite à une modification que j'avais faite au dernier moment. Une petite voix m'avait dit que quelque chose n'allait pas, mais dans l'euphorie du travail terminé je ne l'ai pas écoutée.
J'ai corrigé l'erreur et remplacé les fichiers : ça devrait aller maintenant.
Par ailleurs, en réessayant le jeu à l'instant, j'ai constaté un petit défaut qui ne vient pas d'une erreur dans le code. J'ai inclus un son qui doit être entendu en cas d'échec. Quelquefois, on l'entend avec plusieurs secondes de retard.
Il y avait une erreur, suite à une modification que j'avais faite au dernier moment. Une petite voix m'avait dit que quelque chose n'allait pas, mais dans l'euphorie du travail terminé je ne l'ai pas écoutée.
J'ai corrigé l'erreur et remplacé les fichiers : ça devrait aller maintenant.
Par ailleurs, en réessayant le jeu à l'instant, j'ai constaté un petit défaut qui ne vient pas d'une erreur dans le code. J'ai inclus un son qui doit être entendu en cas d'échec. Quelquefois, on l'entend avec plusieurs secondes de retard.
Très joli !
Deux petites remarques :
- Le programme ne détecte pas une situation de mat, donnant sans fin un message "Coup illégal" jusqu'à ce que je ferme la fenêtre. C'est sûrement un détail.
- Il serait possible de remplacer l'utilisation de la police TrueType par l'inclusion dans les ressources de petites bitmaps représentant les pièces.
Mais je pinaille, c'est un beau programme... nettement plus fort que moi aux échecs.
Deux petites remarques :
- Le programme ne détecte pas une situation de mat, donnant sans fin un message "Coup illégal" jusqu'à ce que je ferme la fenêtre. C'est sûrement un détail.
- Il serait possible de remplacer l'utilisation de la police TrueType par l'inclusion dans les ressources de petites bitmaps représentant les pièces.
Mais je pinaille, c'est un beau programme... nettement plus fort que moi aux échecs.
Grâce à ta remarque j'ai trouvé l'erreur que j'ai faite mais elle n'est pas évidente à corriger.
Le point qui m'avait échappé, c'est que l'échec n'est pas testé dans la procédure de génération des coups. De ce fait la liste des coups possibles n'est jamais vide. C'est au dernier moment que le coup est refusé. Cela m'a échappé quand j'ai posé la condition suivante, qui n'est jamais vraie :
Soit dit en passant, voilà pourquoi le programme est si rapide.
Le texte de présentation inclus dans le programme original précise que l'échec et mat est détecté seulement pour l'ordinateur :
Dans le cas de l'ordinateur, l'échec et mat est détecté d'une façon qui paraît bizarre à première vue mais qui est simple et efficace :
Si l'ordinateur est en échec après avoir joué, c'est qu'il n'y avait pas de coup "meilleur". Dans le cas du joueur, la même déduction ne peut pas être faite. Voilà l'origine du problème. Je vais voir comment je peux le résoudre.
Je vais étudier cette possibilité. J'ai un programme qui convertit les polices True Type en bitmaps. J'aime bien aussi les bitmaps au format texte qu'on peut obtenir avec Workshop. Il faut que j'apprenne à m'en servir.
Le point qui m'avait échappé, c'est que l'échec n'est pas testé dans la procédure de génération des coups. De ce fait la liste des coups possibles n'est jamais vide. C'est au dernier moment que le coup est refusé. Cela m'a échappé quand j'ai posé la condition suivante, qui n'est jamais vraie :
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | // generateur2(courante); // if courante.compteur = 0 then // jamais vrai ! begin if echec(courante) then etatPartie := NoirGagnant else etatPartie := Pat; end else begin {$IfDef Dev} if echec(courante) then ecriture_fichier('Echec au roi blanc !', false); {$EndIf} end; |
Soit dit en passant, voilà pourquoi le programme est si rapide.
Le texte de présentation inclus dans le programme original précise que l'échec et mat est détecté seulement pour l'ordinateur :
- Prüfung auf Schach für den Spieler sowie Matt&Patt für den Computer
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 | deja_en_echec := echec(courante); mouvement(courante, admissiblesProv[i], admissiblesDest[i]); courante.couleur := -1 * courante.couleur; if echec(courante) then begin if deja_en_echec then writeln('Mat !') else writeln('Pat !'); halt; end; |
Je vais étudier cette possibilité. J'ai un programme qui convertit les polices True Type en bitmaps. J'aime bien aussi les bitmaps au format texte qu'on peut obtenir avec Workshop. Il faut que j'apprenne à m'en servir.
Bonjour,
Je m'y prends probablement mal mais je ne parviens pas à faire jouer l'IA.
Si je prends les blancs (noirs en automatique), l'IA reste inerte et si je prends les noirs (blancs en automatique), l'IA n'entame pas la partie.
Je m'y prends probablement mal mais je ne parviens pas à faire jouer l'IA.
Si je prends les blancs (noirs en automatique), l'IA reste inerte et si je prends les noirs (blancs en automatique), l'IA n'entame pas la partie.
Bonjour Roland,
C'est parfait à présent ! L'IA est toujours aussi redoutable et je n'ai pas constaté de décalage pour le son d'avertissement d'échec. Bravo !
C'est parfait à présent ! L'IA est toujours aussi redoutable et je n'ai pas constaté de décalage pour le son d'avertissement d'échec. Bravo !
Bonjour et bienvenue !
OWindows est une unité de la bibliothèque OWL (l'ancêtre de la VCL de Delphi), je doute que Lazarus (et son compilateur Free Pascal) puisse compiler du code écrit pour cette bibliothèque.
Quoi qu'il en soit, les sources sont disponibles ici : https://alcatiz.developpez.com/tutor...g_intro#LI-D-1.
OWindows est une unité de la bibliothèque OWL (l'ancêtre de la VCL de Delphi), je doute que Lazarus (et son compilateur Free Pascal) puisse compiler du code écrit pour cette bibliothèque.
Quoi qu'il en soit, les sources sont disponibles ici : https://alcatiz.developpez.com/tutor...g_intro#LI-D-1.
Bonjour,
Avant de répondre à la question, je voudrais insister sur le fait qu'étant débutant en programmation, il serait préférable pour toi de commencer directement avec des techniques de programmation modernes, plutôt que par l'analyse de code faisant appel à des bibliothèques obsolètes comme OWL.
Les cours d'Eric Thirion, basés sur Lazarus, permettent de débuter en douceur : les bases de la programmation.
Ceci étant dit, pour répondre à ta question, il faut essayer de compiler le code source d'OWL (présent dans l'archive téléchargeable sur la page dont j'ai indiqué le lien dans ma réponse précédente) ; la gravité des erreurs rapportées par le compilateur décidera si le jeu en vaut la chandelle. Personnellement, pour compiler du code OWL 32 bits, j'utilise le compilateur Virtual Pascal.
Avant de répondre à la question, je voudrais insister sur le fait qu'étant débutant en programmation, il serait préférable pour toi de commencer directement avec des techniques de programmation modernes, plutôt que par l'analyse de code faisant appel à des bibliothèques obsolètes comme OWL.
Les cours d'Eric Thirion, basés sur Lazarus, permettent de débuter en douceur : les bases de la programmation.
Ceci étant dit, pour répondre à ta question, il faut essayer de compiler le code source d'OWL (présent dans l'archive téléchargeable sur la page dont j'ai indiqué le lien dans ma réponse précédente) ; la gravité des erreurs rapportées par le compilateur décidera si le jeu en vaut la chandelle. Personnellement, pour compiler du code OWL 32 bits, j'utilise le compilateur Virtual Pascal.
Bonjour,
Je vous propose un nouveau code source à télécharger : JS-Echecs.
C'est un programme allemand que j'ai étudié et modifié. J'ai mis les noms des variables et des fonctions en français, et refait l'affichage (mode texte).
Ce programme est court, simple et d'une grande efficacité. J'y ai pour ma part appris plusieurs choses.
L'adversaire artificiel joue instantanément et, autant que je puis le dire, il joue très correctement.
Qu'en pensez-vous ?
Je vous propose un nouveau code source à télécharger : JS-Echecs.
C'est un programme allemand que j'ai étudié et modifié. J'ai mis les noms des variables et des fonctions en français, et refait l'affichage (mode texte).
Ce programme est court, simple et d'une grande efficacité. J'y ai pour ma part appris plusieurs choses.
L'adversaire artificiel joue instantanément et, autant que je puis le dire, il joue très correctement.
Qu'en pensez-vous ?
Pour jouer, tapez par ex. "e2e4" ou "E2E4" puis appuyez sur Entrée.
Autres commandes :
9999 Quitter le programme
9900 Faire jouer l'ordinateur
9001 Reprendre le dernier coup
Autres commandes :
9999 Quitter le programme
9900 Faire jouer l'ordinateur
9001 Reprendre le dernier coup
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.