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

Java Discussion :

Nouveau programme d'échecs en Java


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2018
    Messages : 4
    Par défaut Nouveau programme d'échecs en Java
    Bonjour,

    Il y a 2 semaines j’ai publié le code d’un programme de jeu d’échecs écrit en 2013. Il est utile pour les débutants ou pour voir l'ordinateur jouer contre lui-même.

    Il suffit d’avoir Java sur son PC pour le lancer :
    https://github.com/Bretwawork/JavaChess4

    J’espère que vous apprécierez.

    Cordialement,
    Bretwa

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 096
    Par défaut
    Je trouve ca pas mal, j'ai essayé quelques parties et fait jouer l'ordinateur seul etc.

    Par contre un truc qui pourrait être bien d'améliorer niveau visuel c'est la transparence et la "bordure" des pions.

    Pourquoi ne pas tout simplement utiliser un PNG avec transparence au lieu d'un fond vert que tu "fait disparaitre" semble-t-il avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public BufferedImage makeColorTransparent(BufferedImage imageParameter,Color color)
    Je pense que visuelement ca pourrait mieux donner. Et peut être rajoute un peu d'antialiasing.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2018
    Messages : 4
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Je trouve ca pas mal, j'ai essayé quelques parties et fait jouer l'ordinateur seul etc.

    Par contre un truc qui pourrait être bien d'améliorer niveau visuel c'est la transparence et la "bordure" des pions.

    Pourquoi ne pas tout simplement utiliser un PNG avec transparence au lieu d'un fond vert que tu "fait disparaitre" semble-t-il avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public BufferedImage makeColorTransparent(BufferedImage imageParameter,Color color)
    Je pense que visuelement ca pourrait mieux donner. Et peut être rajoute un peu d'antialiasing.
    Bonjour wax78,

    Merci pour cette remarque, j'ai apporté l'amélioration en mettant de la transparence, je n'ai pas remarqué de différence notable avec l'antialiasing de Gimp.

    Cordialement,
    Bretwa

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    Je viens de jeter un coup d’œil rapide au projet et je vois que tu utilises un bitboard. C'est une option valable en java où les long sont forcément signé ? Dans mon esprit c'était rédhibitoire.
    En tout cas chapeau, tu as du bien te prendre la tête avec la gestion du bitboard.

    PS: Je ne sais pas si tu connais ce site : https://chessprogramming.wikispaces.com/Getting+Started mais c'est une mine d'or quand il s'agit de développer un jeu d'échecs

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2018
    Messages : 4
    Par défaut
    Citation Envoyé par atha2 Voir le message
    Je viens de jeter un coup d’œil rapide au projet et je vois que tu utilises un bitboard. C'est une option valable en java où les long sont forcément signé ? Dans mon esprit c'était rédhibitoire.
    En tout cas chapeau, tu as du bien te prendre la tête avec la gestion du bitboard.

    PS: Je ne sais pas si tu connais ce site : https://chessprogramming.wikispaces.com/Getting+Started mais c'est une mine d'or quand il s'agit de développer un jeu d'échecs
    Bonjour atha2,

    En fait Java permet d'ignorer le fait que ce soit signé ou pas, il suffit juste de placer les bits à 0/1 au bons endroits avec 64 possibilités dans chaque long, on est ainsi libre de faire ce que l'on veut. Bien sûr il faut prendre des types natifs sinon les performances en souffrent.
    Merci c'est pas mal d'efforts pour avoir des bitboard fonctionnels, il y a un gros travail en amont pour bouger une pièce, les fous sont les plus complexes. La satisfaction arrive quand on peut récupérer les mouvement d'une dame dans toutes les directions sans aucune boucle.
    Oui je connais chessprogramming.wikispaces.com où il y a pas mal d'informations intéressantes, je m'en étais inspiré.
    Ce que j'ai retenu de cette expérience est qu'écrire un programme d'échecs peut être relativement facile si on se contente du minimum mais demande énormément de temps si on veut l'améliorer et c'est pour ainsi dire sans fin. Stockfish est en développement depuis bientôt 10 ans, sans être pour autant parti de rien, et continue régulièrement encore à s'améliorer avec des optimisations toujours plus pointues que peu de développeurs peuvent comprendre.
    Leela Chess Zero avec son réseau de neurones apporte à la fois de la simplification dans le code et de l'efficacité avec un parcours d'arbre plus fin. On peut parier que d'ici quelque temps cette approche fasse mieux que l'alpha-bêta classique, à consommation électrique équivalente.

    Cordialement,
    Bretwa

Discussions similaires

  1. programmer un menu en java
    Par rahma2007 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 15/04/2007, 11h01
  2. programme en c interface java.
    Par soria_t dans le forum Langage
    Réponses: 11
    Dernier message: 03/04/2007, 19h34
  3. Optimisation d'un programme d'échecs
    Par Erickann dans le forum x86 32-bits / 64-bits
    Réponses: 8
    Dernier message: 23/11/2005, 20h23
  4. [Débutant]Programmer un mobile en java
    Par Pill_S dans le forum Java ME
    Réponses: 3
    Dernier message: 28/05/2004, 13h06
  5. Commencer la programmation avec le langage Java ?
    Par von_magnus dans le forum Débuter
    Réponses: 14
    Dernier message: 09/03/2004, 22h19

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