J'ai créé un composant ChessBoard qui implémente un plateau de jeu d'échecs.
Tout est entièrement écrit en Delphi 6 Personal Edition.
L'unité Chess.pas (implémentant le composant que j'ai créé) est un extrait de ma vaste DLL de soutien à un autre langage.
Les couleurs "sombre" et "claire" des cases sont paramétrables.
Les pièces sont jouables en les "tirant" avec la souris pour les "lâcher" dans la case cible.
Chaque mouvement est soumis au contrôle des règles de déplacement du jeu d'échecs et un mouvement invalide est rejeté.
Le premier mouvement revient à la couleur blanche, pour alterner ensuite.
La prise d'un pion "en passant" est implémentée.
Le roque est implémenté avec les conditions requises pour le roque.
Pour roquer, il suffit de déplacer le roi de deux cases vers la tour concernée.
Si le roque est autorisé, roi et tour bougent automatiquement.
La prise d'une pièce adverse est autorisée.
La mise en échec du roi adverse est détectée.
La prise du roi adverse est détectée comme "victoire".
Initialement, le plateau est rempli avec la configuration de base standard.
Une configuration personnalisée peut être chargée via un bouton "Peupler.."
Ce bouton utilise le contenu d'un MEMO invisible (8 lignes de 8 caractères) comme définition de la configuration à charger.
Ce code contient une documentation complète des caractères à placer dans ce mémo pour définir une configuration.
Ceci peut être utilisée pour essayer de résoudre un problème d'échec publié dans un journal, par exemple.
Le projet complet se trouve dans un fichier ZIP en pièce jointe.
Voici à quoi ressemble l'écran initial:
Partager