IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Codes sources à télécharger Pascal Discussion :

VALISOACHESS un jeu d'échecs ambitieux [Sources]


Sujet :

Codes sources à télécharger Pascal

  1. #1
    Membre averti
    Avatar de inspirateur
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mars 2014
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mars 2014
    Messages : 91
    Points : 339
    Points
    339
    Par défaut VALISOACHESS un jeu d'échecs ambitieux
    Bonjour,

    Je vous propose un nouvel élément à utiliser : VALISOACHESS un jeu d'échecs ambitieux

    Bonjour tout le monde.

    En tant que joueur d'échecs (1654 ELO FIDE) et amateur en programmation, j'ai eu l'idée de créer mon propre jeu d'échecs. Avant de me lancer, j'ai fait des recherches sur internet et j'ai trouvé beaucoup d'exemples mais soient ils sont trop compliqués pour être compris soient leurs codes sont trop longs (> 2 000 lignes). Alors que j'ai voulu avoir un exemple très simple juste pour débuter; un exemple qui montre juste comment deplacer les pièces et comment generer un coup sans se soucier du gain ou des tactiques gagnantes et cela avec le minimum de codes possibles.

    Je me suis décidé alors de créer moi-même ce que je cherchais : VALISOACHESS est alors né.



    Développeur : Valisoa Jean Hervé

    Début de programmation : 01/04/2017

    Version : 0.0.2 (30/05/2017)

    Langage de programmation : Pascal

    Compilateur : FreePascal 3.0.2

    Qu'en pensez-vous ?
    " Le voyage compte plus que la destination. "
    ValisoaChess

  2. #2
    Membre averti
    Avatar de inspirateur
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mars 2014
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mars 2014
    Messages : 91
    Points : 339
    Points
    339
    Par défaut Mes objectifs
    Mon objectif principal était avant tout de créer le plus SIMPLE moteur d'échecs qui soit,en langage Pascal, en utilisant le MINIMUM DE CODE POSSIBLE. Afin que quiconque voudrait débuter au développement d'un jeu d'échecs en langage Pascal, même un débutant en programmation pourrait utiliser VALISOACHESS comme une référence de départ.
    Jusqu'à la limite du possible, j'essayerais de maintenir les idées directrices suivantes :
    Simple/Minimum de code/Original/Très intelligent/Documenté.
    NB :
    1- Original pour moi veut dire pas de plagiats. Je ne veux pas de "Copier/Coller" des codes spécifiques à tel ou tel programme d'échecs.
    2- Pas de "Copier/Coller" d'algorithmes spécifiques à un programme d'échecs déjà existant même en Open Source.
    3- Toutes fois, je ne me priverai pas des algorithmes que tout le monde utilise.
    4- Je pourais utiliser les autres programmes d'échecs, "libres","OpenSource", comme sources d'inspirations(d'idées, d'imaginations) mais jamais comme une source à "Copier/Coller".
    5- Je souhaite que VALISOACHESS soit unique de son genre : Original, intelligent et autonome.
    6- Mon rêve est qu'à l'avenir VALISOACHESS soit parmi les meilleurs moteurs d'échecs ou qu'il soit le meilleur de tous pourquoi pas .

    ValisoaChess (version 0.0.2) ne gère pas encore la prise en passant, le roque et l'échecs. Il gère tous les autres mouvements de toutes les pièces y compris les captures.
    ValisoaChess joue ses coups de façon aléatoire. Toutes fois, il priorise les captures par rapport aux simples deplacements.
    Pour jouer, utilisez la notation algebrique du genre e2e4, e7e5 ou g1f3.

    Des suggestions, critiques, aides et conseils seront les bienvenus !
    " Le voyage compte plus que la destination. "
    ValisoaChess

  3. #3
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 416
    Points
    59 416
    Billets dans le blog
    2
    Par défaut
    Bonjour Jean-Hervé,

    La pièce jointe est de format inconnu, serait-il possible de la remplacer par une archive zip, par exemple ?
    J'ai hâte de faire des tests !

    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]

  4. #4
    Membre averti
    Avatar de inspirateur
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mars 2014
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mars 2014
    Messages : 91
    Points : 339
    Points
    339
    Par défaut
    Bonjour Alcatîz !
    Le fichier est au format archives du type rar. Mais je vais le mettre au format zip si vous voulez.
    C'est fait. Maintenant le fichier .pas est déjà archivé au format .zip.
    ValisoaChess0.0.2_pas_.zip
    " Le voyage compte plus que la destination. "
    ValisoaChess

  5. #5
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 416
    Points
    59 416
    Billets dans le blog
    2
    Par défaut
    Merci, j'ai testé une petite partie.

    L'IA a continué à jouer avec une pièce que je lui ai prise, je n'ai maheureusement pas eu le temps de regarder le code. Celui-ci est toutefois clair, les identificateurs sont bien parlants et il y a des commentaires, ce qui en facilitera la compréhension.

    Petite suggestion : cela ne devrait pas prendre trop de temps d'implémenter la visualisation de l'échiquier, un peu comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    TCFDRF.T
    p.pppppp
    .......C
    .p......
    ....p...
    ...p....
    ppp..ppp
    TCFDRFCT
    Comme ça le joueur n'a pas besoin de véritable échiquier.
    (mais c'est juste une suggestion)
    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]

  6. #6
    Membre averti
    Avatar de inspirateur
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mars 2014
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mars 2014
    Messages : 91
    Points : 339
    Points
    339
    Par défaut Merci pour les remarques j'en prends note
    Je n'ai pas remarqué ce bug mais je vais revérifier. Mais comme il ne gère pas encore la prise en passant c'est possible qu'il utilise encore un pion déjà capturé.
    Pour l'interface, je vous remercie de votre suggestion et j'en tiens compte mais j'aimerais qu'il soit capable de gérer les 3 mouvements/règles de base à savoir la prise en passant, l'échecs et le roque avant de lui créer une interface. Ce sera pour bientôt...
    " Le voyage compte plus que la destination. "
    ValisoaChess

  7. #7
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 070
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 070
    Points : 15 454
    Points
    15 454
    Billets dans le blog
    9
    Par défaut
    Bonjour ! Intéressant projet.

    J'ai regardé rapidement votre code. Il vous reste encore pas mal de travail avant de pouvoir générer correctement tous les coups légaux. Deux remarques à ce sujet : 1° pour vérifier la légalité d'un coup, il faut être capable de détecter l'échec, afin de savoir si le joueur ne se met pas en échec en déplaçant sa pièce. 2° Concernant le roque et la prise en passant, la légalité du coup dépend, non seulement de la position actuelle des pièces sur l'échiquier, mais aussi de conditions liées à l'histoire de la partie.

    Sauf erreur de ma part, il vous manque donc deux variables correspondant aux 3e et 4e champs d'une chaîne FEN :

    rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
    Ces deux variables doivent être initialisées au début de la partie et modifiées après chaque coup, comme la variable qui représente le "trait".

    Un moteur qui joue même au hasard mais sans erreur est un objectif déjà assez difficile. Je pense comme Alcatîz qu'il serait bon de voir l'échiquier, ne serait-ce que pour détecter les erreurs inévitables quand on commence un programme de ce genre. Il serait bon de voir après chaque coup, non seulement l'échiquier, mais la valeur des variables "trait", "roque" et "prise en passant". Il faut penser en écrivant le programme au moyen de détecter les erreurs.

    Voilà, bon courage ! J'ai hâte de voir la suite.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  8. #8
    Membre averti
    Avatar de inspirateur
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mars 2014
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mars 2014
    Messages : 91
    Points : 339
    Points
    339
    Par défaut Developpement progressif et continu
    Bonjour ! Merci pour vos remarques Roland Chastain.
    Vous avez raison pour l'interface. C'est plus pratique et facile à tester si ValisoaChess possède sa propre interface. Je vais en créer une pour les prochaines versions.
    Pour l'instant j'ai corrigé quelques bug de la version 0.0.2 et j'ai rajouté un fichier pdf contenant le journal de bord de ValisoaChess, une sorte d'historique de développement, et un autre fichier pdf qui devrait, au fur et à mesure, contenir la documentation de ValisoaChess. J'aimerais que ValisoaChess reste documenté.
    La version 0.0.3 est déjà terminée mais j'ai encore des tests à faire avant de la mettre ici. Dans la version 0.0.3, ValisoaChess gère la prise en passant. J'aimerais y aller doucement mais sûrement de façon progressive ; en même temps j'essaye de comprendre le fonctionnement d'un IA, comme un jeu d'échecs, donc je ne peux pas faire beaucoup de choses à la fois.
    Je livrerai la version 0.0.3 à la semaine prochaine.

    Lorsque vous avez dit qu'il me manque encore deux variables correspondants aux 3ème et 4ème champs d'une chaîne FEN, je ne comprends pas ce que vous voulez dire par là. Quelles variables ? En tout cas, je crois que ValisoaChess maitrise bien la prise en passant. Il ne lui reste plus que le roque et l'échecs avant d'être un vrai moteur d'échecs
    " Le voyage compte plus que la destination. "
    ValisoaChess

  9. #9
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 070
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 070
    Points : 15 454
    Points
    15 454
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par inspirateur Voir le message
    Lorsque vous avez dit qu'il me manque encore deux variables correspondants aux 3ème et 4ème champs d'une chaîne FEN, je ne comprends pas ce que vous voulez dire par là. Quelles variables ? En tout cas, je crois que ValisoaChess maitrise bien la prise en passant.
    Une position au jeu des échecs, ce n'est pas seulement la position des pièces sur l'échiquier, c'est aussi le "trait" (qui doit jouer), l'autorisation de roquer (indépendamment de la position actuelle des pièces), l'autorisation de prendre en passant (indépendamment de la position actuelle des pièces) et éventuellement (si l'on veut appliquer la règle des cinquante coups) le nombre de demi-coups joués précédemment sans prise ni pion déplacé.

    Tout cela correspond aux cinq premiers champs d'une chaîne FEN. Je parle de la notation FEN parce qu'elle est couramment utilisée et aussi parce qu'elle peut servir d'aide-mémoire. D'ailleurs je recommanderais d'initialiser les différentes variables qui représentent la position au sens large à partir d'une chaîne FEN. C'est ce que j'ai fait dans mon propre programme d'échecs.

    Pour le moment, vous n'avez que deux variables, qui représentent respectivement la position des pièces et le "trait". Donc vous ne pouvez générer correctement ni le roque, ni la prise en passant.

    Par exemple, la prise en passant d'un pion n'est autorisée qu'au coup suivant le déplacement de ce pion (1). Or on ne peut pas savoir en regardant l'échiquier si le pion vient d'être déplacé. D'où la nécessité d'une variable représentant l'autorisation de prendre en passant, variable qui doit être mise à jour après chaque coup, en même temps que les variables "pièces" et "trait". J'espère que c'est plus clair cette fois.

    Bonne continuation !

    (1) Et il faut que le pion ait avancé de deux cases d'un seul coup. Cela non plus, on ne peut pas le savoir en regardant simplement l'échiquier.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  10. #10
    Membre averti
    Avatar de inspirateur
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mars 2014
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mars 2014
    Messages : 91
    Points : 339
    Points
    339
    Par défaut CHAMPS FEN
    Merci Roland Chastain! Je vais rajouter les variables que vous m'avez proposées. J'ai déjà téléchargé votre propre programme , c'est très cool ; mais je n'ai pas encore regardé le code, je l'ai juste survolé. Je l'analyserai en détails.
    " Le voyage compte plus que la destination. "
    ValisoaChess

  11. #11
    Membre averti
    Avatar de inspirateur
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mars 2014
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mars 2014
    Messages : 91
    Points : 339
    Points
    339
    Par défaut ValisoaChess 0.0.3 gère la prise en passant
    Citation Envoyé par Roland Chastain Voir le message

    Par exemple, la prise en passant d'un pion n'est autorisée qu'au coup suivant le déplacement de ce pion (1). Or on ne peut pas savoir en regardant l'échiquier si le pion vient d'être déplacé. D'où la nécessité d'une variable représentant l'autorisation de prendre en passant, variable qui doit être mise à jour après chaque coup, en même temps que les variables "pièces" et "trait". J'espère que c'est plus clair cette fois.

    (1) Et il faut que le pion ait avancé de deux cases d'un seul coup. Cela non plus, on ne peut pas le savoir en regardant simplement l'échiquier.
    Oui, c'est très clair Merci.
    Justement j'ai déjà terminé la version 0.0.3 de ValisoaChess. Il gère désormais la prise en passant.
    ValisoaChess 0.0.3.zip

    ValisoaChess choisit son coup en se basant sur les 3 critères d'évaluation suivants :
    1- La capture
    2- La prise en passant
    3- et le simple déplacement
    " Le voyage compte plus que la destination. "
    ValisoaChess

  12. #12
    Membre averti
    Avatar de inspirateur
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mars 2014
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mars 2014
    Messages : 91
    Points : 339
    Points
    339
    Par défaut
    J'ai déjà résolu le problème d'échecs, avec la version 0.0.4 de ValisoaChess, mais il me reste encore des vérifications et des tests à faire. La version 0.0.4 qui gère l'échecs sortira à la semaine prochaine.
    " Le voyage compte plus que la destination. "
    ValisoaChess

  13. #13
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 418
    Points : 5 816
    Points
    5 816
    Par défaut
    salut

    quelques remarques sur le code

    dans ta methode initialisation il y a quelques simplifications et optimisations à faire
    remplace ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    //  for i := 0 to 99 do
    //    Piece[i] := Bord; {Initialisation du bord de l'échiquier}
    //   for j := 3 to 6 do
    //     Piece[i*10+j] := vide;
    //  for i := 1 to 8 do
    //    Piece[i*10+2] := Pion;
    //  for i := 1 to 8 do
    //    Piece[i*10+7] := -Pion;;
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     FillChar(Piece,sizeof(Piece),Bord);
     for i := 1 to 8 do
     begin
       for j := 3 to 6 do
         Piece[i*10+j] := vide;
       Piece[i*10+2] := Pion;
       Piece[i*10+7] := -Pion;
     end;
    ceci fait exactement la même chose en moins de boucle

    autre chose dans la methode ValisoaChessCoup
    ce qui me gène c'est que tu écrases systématiquement les premiers coups par des coups ayant une capture
    je conçois que pour le moment ton ia est un peu simple et que tu donnes priorité aux capturex mais les échecs ce n'est pas que cela
    il m'est arrivé de sacrifier des pions pour gagner la partie
    donc pour ne pas trop changer ta logique actuelle il serait plus simple d'avoir un tableau d'entiers dans lesquels on indiquera le coup ayant une capture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
      TabCapture : array[1..200] of integer;
      ...
      FilleChar(TabCapture,Sizeof(TabCapture),0);
      ...
    pour chaque capture
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
          inc(nbCoup); inc(nbCapture);
          Coup[nbCoup] := ...;
          Coup[nbCapture] := Coup[nbCoup];
          Writeln(nbCoup,' : ',Coup[nbCoup],' Capture de prise en passant');
    tu remplaces par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        inc(nbCoup); inc(nbCapture);
        Coup[nbCoup]     := ...;
        TabCapture[nbCapture] := nbCoup;
        Writeln(nbCoup,' : ',Coup[TabCapture[nbCapture]],' Capture');
    et pour ton choix si il y a des captures
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      CoupChoisi := Coup[TabCapture[Random(nbCapture-1)+1]]; {Le coup choisi est pris aléatoirement parmi les captures possibles}
    dans ta methode arbitre plutôt que deux tests tu peux simplement faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      ......
      Repeat
         Writeln(' Voulez-vous jouer les blancs ou les noirs ?',#10,' 1 : Blancs',#10,' 2 : Noirs');
         Write(' Quelle couleur Voulez-vous jouer ? : ');
         Readln(ChoixMachine);
         Machine := ChoixMachine = 2;
      until (ChoixMachine = 1) or (ChoixMachine=2);
      ...
    par contre je ne vois pas où il se termine ?
    j'ai nulle part un
    après tu as fait des choix techniques qui sont déroutants au premier abord et une fois rentré dans le code somme toute sympas
    Nous 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.
    Blaise Pascal
    PS : n'oubliez pas le tag

  14. #14
    Membre averti
    Avatar de inspirateur
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mars 2014
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mars 2014
    Messages : 91
    Points : 339
    Points
    339
    Par défaut
    Citation Envoyé par anapurna Voir le message
    par contre je ne vois pas où il se termine ?
    j'ai nulle part un
    après tu as fait des choix techniques qui sont déroutants au premier abord et une fois rentré dans le code somme toute sympas
    Oui, il n'y a pas encore de
    mais il sera inséré dans la version 0.0.4 qui gère l'échecs. En fait, il ne joue plus quand il est en échecs et mat donc Fin := True.
    " Le voyage compte plus que la destination. "
    ValisoaChess

  15. #15
    Membre averti
    Avatar de inspirateur
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mars 2014
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mars 2014
    Messages : 91
    Points : 339
    Points
    339
    Par défaut Proposition d'amélioration acceptée et à adopter. Merci anapurna
    Bonjour !
    Merci anapurna. Je vois que votre proposition améliore beaucoup mon programme. Un exemple qui me plait beaucoup
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     FillChar(Piece,sizeof(Piece),Bord);
    .
    Justement la simplicité fait partie de mon idée directrice depuis le début .
    Pour le choix de coup, j'ai donné priorité aux captures parce que je n'ai pas encore rajouter d'autres critères de choix de coups comme "mat" par exemple. C'était juste provisoire mais je pense en rajouter d'autres critères que le simple fait de capturer.
    " Le voyage compte plus que la destination. "
    ValisoaChess

  16. #16
    Membre averti
    Avatar de inspirateur
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mars 2014
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mars 2014
    Messages : 91
    Points : 339
    Points
    339
    Par défaut ValisoaChess 0.0.4 gère l'échecs
    Bonjour !
    Voici la version 0.0.4 de ValisoaChess. Elle gère désormais l'échec.
    ValisoaChess 0.0.4.zip
    " Le voyage compte plus que la destination. "
    ValisoaChess

  17. #17
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 418
    Points : 5 816
    Points
    5 816
    Par défaut
    salut

    tu as oublié de gérer le "pat" ... impossibilité de se déplacer sans se mettre en échec mais n'étant pas sur un position d’échecs
    après tu peut gérer les différente ouverture connu
    L'historique des coups ...
    mais surtout l'IA est plus que basique il te faut trouver un algo qui te permet de choisir le coup le plus pertinent
    même dans ton IA simple tu ne tiens pas compte de la différence entre prendre une dame ou un pion ... ce n'est pourtant pas le même gain
    Nous 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.
    Blaise Pascal
    PS : n'oubliez pas le tag

  18. #18
    Membre averti
    Avatar de inspirateur
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mars 2014
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mars 2014
    Messages : 91
    Points : 339
    Points
    339
    Par défaut
    Citation Envoyé par anapurna Voir le message
    salut

    mais surtout l'IA est plus que basique il te faut trouver un algo qui te permet de choisir le coup le plus pertinent
    même dans ton IA simple tu ne tiens pas compte de la différence entre prendre une dame ou un pion ... ce n'est pourtant pas le même gain
    Bonjour, je comprends, merci pour la remarque. C'est le premier critère que je vais rajouter pour raffiner le choix de coup.
    " Le voyage compte plus que la destination. "
    ValisoaChess

  19. #19
    Membre averti
    Avatar de inspirateur
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mars 2014
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mars 2014
    Messages : 91
    Points : 339
    Points
    339
    Par défaut ValisoaChess 0.0.5 gère la prise en passant, l'échecs et le roque
    Bonjour !
    Voici la version 0.0.5 de ValisoaChess. Elle gère la prise en passant, l'échecs et le roque. J'ai aussi rajouté un test permettant de rejeter les coups invalides du joueur humain.
    ValisoaChess 0.0.5.zip

    A partir de maintenant je vais attaquer 2 points:
    1- L'IA : en pratique, les critères du choix de coup lors de l'évaluation.
    2- L'interface graphique.
    " Le voyage compte plus que la destination. "
    ValisoaChess

  20. #20
    Membre averti
    Avatar de inspirateur
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mars 2014
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mars 2014
    Messages : 91
    Points : 339
    Points
    339
    Par défaut ValisoaChess 0.0.6 possède son propre échiquier
    Bonjour,
    Voici la version 0.0.6 de ValisoaChess.
    ValisoaChess 0.0.6.zip
    Cette version possède son propre échiquier. J'ai rajouté une petite interface console qui permet de voir les pièces se déplacer.
    En plus, au niveau de l'IA, lors de capture, s'il a plusieurs choix de pièces à capturer, il choisit la pièce ayant la plus grande valeur. Il gère aussi la promotion de pions en Dame, Tour, Fou ou Cavalier.
    " Le voyage compte plus que la destination. "
    ValisoaChess

Discussions similaires

  1. Projet Jeu d'échec
    Par Layla dans le forum Langage
    Réponses: 10
    Dernier message: 23/12/2010, 13h06
  2. [IA] jeu d'échec
    Par Leinhardt dans le forum Intelligence artificielle
    Réponses: 7
    Dernier message: 01/04/2008, 21h33
  3. L'empereur de Chine et le jeu d'échecs
    Par momo1367 dans le forum Pascal
    Réponses: 1
    Dernier message: 04/01/2008, 02h08
  4. Serveur de jeu d'échec en PHP
    Par S_Xavier dans le forum Langage
    Réponses: 3
    Dernier message: 20/10/2007, 15h02
  5. Jeu d'échec borland soap
    Par rpoulin dans le forum Web & réseau
    Réponses: 2
    Dernier message: 20/10/2005, 05h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo