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

avec Java Discussion :

Echiquier en Java


Sujet :

avec Java

  1. #221
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    pour le cas de mat non détecté,y'avait un bug : dans le test de blocage du moment je testais aussi le roi c'est sur que le roi peut pas bloquer l'echec

    voici la correction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    parcourColonnes: for(int colonne=0; colonne<8;colonne++) {
      for(int ligne=0; ligne<8;ligne++) {
        if (e.getCase(colonne,ligne).estOccupe(couleurControle) && !(e.getCase(colonne,ligne).getPiece() instanceof Roi) ) {
          // on parcourt toutes les cases du déplacement :
          for(Position pos : deplacementMenace.getPositions() ) {
            Deplacement simuleDeplacement=new Deplacement(new Position(colonne, ligne),pos);
            if ((e.getCase(colonne,ligne).getPiece().estValide(simuleDeplacement) && e.cheminPossible(simuleDeplacement)) ){
              mat=false;
              break parcourColonnes; // pas la peine de continuer
              }
          }
        }
      }
    }
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  2. #222
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Jordan62 Voir le message
    sinon tu fais peut etre une manip spéciale : tu a bien fait cette partie en F2F4, E7E6, G2G4, D8H4 ?

    Oui


    J'ai juste mis l'onglet Annuler coup avant terminé , rien de plus.
    bizarre j'ai aussi des différences de numéro de lignes dans Deplacement et Echiquier

    Citation Envoyé par Jordan62 Voir le message

    Si chez vous sa marche, pouvez vous me renvoyé le fichier s'il vous plais ?

    Merci
    je te joins le source avec le menu annuler avant terminer des fois que
    Fichiers attachés Fichiers attachés
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #223
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2013
    Messages : 139
    Par défaut
    Merci sa fonctionne désormais

  4. #224
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    je viens de trouver un autre problème : j'avais pas vu que tu avais duppliqué les constantes COULEUR_JOUEUR_BLANC et COULEUR_JOUEUR_NOIR dans la classe Echiquier, du coup lors de mon clean j'ai pas traité ce cas !

    ci-joins la classe corrigée

    quand tu fais des constantes, faut les faire dans une classe uniquement et les appeler partout, surtout pas les dupliquer : il y a risque de les changer à un endroit sans les changer à un autre, on perd le bénéfice de la constante

    par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public class FenetreJeu {
     
    ...
     
    public final static String COULEUR_JOUEUR_BLANC="rouge et jaune";
     
    ...
    }
    pour faire référence dans une autre classe :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class Echiquier {
     
    ...
     
    public void maMethode() {
         if ( FenetreJeu.COULEUR_JOUEUR_BLANC.equals(...
    }
    ...
    }
    tu peux faire aussi un import statique de la constante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import static projet.FenetreJeu.COULEUR_JOUEUR_BLANC;
    public class Echiquier {
     
    ...
     
    public void maMethode() {
         if ( COULEUR_JOUEUR_BLANC.equals(...
    }
    ...
    }
    ou éventuellement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class Echiquier {
     
    ...
     
    public final static String COULEUR_JOUEUR_BLANC=FenetreJeu.COULEUR_JOUEUR_BLANC;
     
    public void maMethode() {
         if ( COULEUR_JOUEUR_BLANC.equals(...
    }
    ...
    }
    Fichiers attachés Fichiers attachés
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #225
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2013
    Messages : 139
    Par défaut
    Merci BEAUCOUP pour tout !

  6. #226
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    je viens de tester l'annulation du roque : ça bug

    je corrige le problème et je te renvois ça
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #227
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    voici la correction du bug de l'annulation du roque

    en plus j'ai l'impression que j'ai oublié de t'envoyer une modif de la classe pièce
    Fichiers attachés Fichiers attachés
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  8. #228
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2013
    Messages : 139
    Par défaut
    Merci

  9. #229
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    ta présentation c'est noté ? on va regarder tes sources ? te poser des questions sur pourquoi tu as fait comme ça ? comment tu as fait ça ? etc...

    tu es sur d'avoir bien compris tout ce qu'on a fait ? je parle pas du java lui mais niveau algo ?

    si tu as la moindre question, n'hésite pas. c'est fastidieux, mais il faut que tu relises tout le code, pour bien repérer tous les concepts algorithmiques utilisés. c'est vrai pour le code qu'on a fait "ensemble", mais aussi pour le code d'origine (tous les algo de validation de mouvement par exemple)

    à mon avis l'un de concept algorithmique qu'on utilise le plus est la simulation de déplacement : le fait de créer des faux déplacement pour toutes les pièces du joueur ou du joueur adverse vers une ou plusieurs positions données
    le but : pouvoir utiliser les méthodes de validation de mouvement ou de prise pour des mouvements possibles mais non effectués, afin de prévoir des situations possibles (comme la prise d'un pion, le déplacement possible, le roque possible, l'echec au roi, l'echec et mat...)

    pour l'annulation de coup, le concept est facile : à chaque coup joué, on sauvegarde le coup (la pièce qui bouge, les positions de départ et d'arrivée, la pièce prise pour nous faciliter l'annulation), ceci nous permet non seulement de sauvegarder la partie, mais également d'annuler en rejouant le coup à l'envers : il suffit de remettre la pièce jouée dans sa position de départ, la piece éventuellement prise dans la position d'arrivée (la supprimer du panel des pièces prises),
    pour le roque, on ne sauvegarde que le mouvement du roi, pour éviter d'avoir à gérer un cas particulier, qui n'est pas indispensable comme on peut facilement connaitre le mouvement inverse de la tour, mais au niveau de l'annulation comme pour le chargement, il faut traiter ce cas de manière particulière
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  10. #230
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2013
    Messages : 139
    Par défaut
    Merci
    J'ai du mal au niveau des List <deplacement>

  11. #231
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    c'est à dire ?

    du mal avec quoi ?

    avec la notation ? la manipulation ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  12. #232
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2013
    Messages : 139
    Par défaut
    private List<Deplacement> chercheEchec(Position positionRoiJoue, Couleur couleurAdverse) {
    List<Deplacement> menaceechec=new ArrayList<Deplacement>();

    Ici on créer une liste de deplacement ?

  13. #233
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Jordan62 Voir le message
    private List<Deplacement> chercheEchec(Position positionRoiJoue, Couleur couleurAdverse) {
    List<Deplacement> menaceechec=new ArrayList<Deplacement>();

    Ici on créer une liste de deplacement ?
    java.util.List est une interface qui hérite de java.util.Collection qui en gros définit une classe qui représente une liste d'élément auquels on peut accèder par leur index.

    on déclare une variable de ce type (List) et on crée une instance de ArrayList qui est une classe qui implémente l'interface List en stockant les données de la liste dans un tableau.

    la notation <x> est juste une notation qui permet de manipuler lors de la programmation les éléments de la liste comme étant de classe x. ceci n'intervient pas lors de l'exécution du programme : une ArrayList ne contient toujours que des java.lang.Object.

    quand on écrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<Deplacement> menaceechec
    on permet simplement à ce que le compilateur reconnaisse des écritures du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Deplacement deplacement = menaceechec.get(0);
    sans signaler d'erreur

    en quelque sorte on "dit" au compilateur "oui je sais une List contient des java.lang.Object mais je sais que je vais y mettre que des project.Deplacement, alors je veux me simplifier l'écriture du code"

    avant l'introduction de cette notation, en java 1.5, on aurait écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List menaceechec=new ArrayList();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Deplacement deplacement = (Deplacement)menaceechec.get(0);
    on peut d'ailleurs continuer à le faire

    le but logique final de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<Deplacement> menaceechec=new ArrayList<Deplacement>();
    étant bien entendu de créer une liste de déplacement,
    la méthode collectant tous les déplacements de pièces adverses qui résulteraient en une prise du roi de la couleur qui joue, afin de pouvoir les analyser ensuite
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  14. #234
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2013
    Messages : 139
    Par défaut
    Merci

+ Répondre à la discussion
Cette discussion est résolue.
Page 12 sur 12 PremièrePremière ... 289101112

Discussions similaires

  1. le Java est la continuité du C++ ???
    Par Vincent PETIT dans le forum Débats sur le développement - Le Best Of
    Réponses: 33
    Dernier message: 25/08/2005, 21h17
  2. Envoi de Datagrames par IP en JAVA
    Par the java lover dans le forum Développement
    Réponses: 2
    Dernier message: 14/08/2002, 12h44
  3. directx et java?? possible??
    Par jiraiya dans le forum DirectX
    Réponses: 3
    Dernier message: 09/07/2002, 20h55
  4. webcam : lire sur un port usb en c/c++ ou java. sous win. ?
    Par flo007 dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 25/05/2002, 00h24
  5. Service de nommage java C++
    Par Anonymous dans le forum CORBA
    Réponses: 3
    Dernier message: 15/04/2002, 13h48

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