Précédent   Forum du club des développeurs et IT Pro > Autres langages > Pascal > Téléchargez
Téléchargez Téléchargement de codes sources et d'outils de développement -> Proposez vos propres codes sources
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 27/06/2012, 02h17   #1
forum
Robot Forum
 
Avatar de forum
 
Inscription : novembre 1999
Messages : 1 001
Détails du profil
Informations forums :
Inscription : novembre 1999
Messages : 1 001
Points : 214
Points : 214
Par défaut JS-Echecs : Jeu d'échecs en mode texte

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 ?
forum est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2012, 02h32   #2
Roland Chastain
Membre Expert
 
Homme Roland Chastain
Inscription : décembre 2011
Messages : 687
Détails du profil
Informations personnelles :
Nom : Homme Roland Chastain
Âge : 39
Localisation : Mali

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : décembre 2011
Messages : 687
Points : 1 002
Points : 1 002
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
__________________
L'Art est long et le Temps est court.
Roland Chastain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/09/2012, 17h25   #3
Roland Chastain
Membre Expert
 
Homme Roland Chastain
Inscription : décembre 2011
Messages : 687
Détails du profil
Informations personnelles :
Nom : Homme Roland Chastain
Âge : 39
Localisation : Mali

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : décembre 2011
Messages : 687
Points : 1 002
Points : 1 002
Bonjour ! Je vous présente la nouvelle version de JS-Echecs.

Cette version propose une très simple interface graphique basée sur l'API Win32. Les pièces du jeu sont représentées au moyen d'une police True Type.

Pour jouer, cliquez sur la case de départ puis sur la case d'arrivée.



Qu'en pensez-vous ?
__________________
L'Art est long et le Temps est court.
Roland Chastain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2012, 10h09   #4
Alcatîz
Responsable Pascal

 
Avatar de Alcatîz
 
Homme Jean-Luc Gofflot
Ressources humaines
Inscription : mars 2003
Messages : 5 510
Détails du profil
Informations personnelles :
Nom : Homme Jean-Luc Gofflot
Âge : 46
Localisation : Belgique

Informations professionnelles :
Activité : Ressources humaines
Secteur : Service public

Informations forums :
Inscription : mars 2003
Messages : 5 510
Points : 39 359
Points : 39 359
Envoyer un message via ICQ à Alcatîz Envoyer un message via MSN à Alcatîz Envoyer un message via Yahoo à Alcatîz Envoyer un message via Skype™ à Alcatîz
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.
__________________
Règles du forum
Tutoriels, exercices, FAQ, sources, compilateurs, outils, livres Pascal
Mes tutoriels et sources Pascal
FAQ Assembleur

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]
Alcatîz est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/09/2012, 15h13   #5
Roland Chastain
Membre Expert
 
Homme Roland Chastain
Inscription : décembre 2011
Messages : 687
Détails du profil
Informations personnelles :
Nom : Homme Roland Chastain
Âge : 39
Localisation : Mali

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : décembre 2011
Messages : 687
Points : 1 002
Points : 1 002
Citation:
Envoyé par Alcatîz Voir le message
- 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.
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 :

Code :
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 :

Citation:
- Prüfung auf Schach für den Spieler sowie Matt&Patt für den Computer
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 :

Code :
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;
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.

Citation:
Envoyé par Alcatîz Voir le message
- 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.
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.
__________________
L'Art est long et le Temps est court.
Roland Chastain est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 07h46.


 
 
 
 
Partenaires

Hébergement Web