Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Java] [jeu de Go] JWeiqi, le Jeu de Go en Java

mon (humble) projet !

    10 juin 2010 à 19:00:19

    Bonjour! Je suis en plein apprentissage de la POO, et je commence à développer en Java un logiciel de Jeu de Go.
    Bon, je vous l'accorde,
    ce projet n'est pas de la même envergure que la plupart des projets de cette section, mais bon , soyez indulgents ^^ !

    Les règles du Jeu de Go


    petite présentation des règles du jeu de Go pour ceux qui ne les connaissent pas:

    Je vous invite à visiter le site jeudego.com, qui pourra vous renseigner plus amplement sur ce sujet.

    C'est un jeu très ancien,originaire de Chine.
    Le but est de créer un territoire plus grand que celui de son adversaire:
    On joue sur un plateau appelé Goban, sur lequel les joueurs posent des pions blanc pour le premier, noirs pour le second (appelés pierres).
    Les pierres se posent sur les intersections, et non pas dans les cases :) .
    Une fois posée, une pierre ne peut pas être déplacée ni retirée, sauf si elle est faite prisonnière (cf ci-dessous).

    les pierres adjacentes forment des chaines.

    Si une pierre est totalement entourée,elle est capturée:
     deviendra en fait -->

    la pierre noire est retirée quand 4 pierres blanches l'entourent totalement: elle n'a plus de liberté


    De même, si une chaine est totalement entourée, elle est capturée.

    exemple : libertés d'un groupe de deux pierres (ce qui signifie : si l'adversaire joue à chacun des point numéroté, il capturera le groupe) ->


    Quand les deux joueurs estiment qu'il n'y a plus de coup à jouer, ils passent, et comptent leurs territoires respectifs: le gagnant est celui pour qui la somme "territoire + nombre de pierres capturées" est la plus grande .

    JWeiqi , Le Jeu de Go en Java



    Mon application:

    Le titre est vite trouvé , Weiqi signifiant jeu de Go en chinois, et J pour Java :-° .

    Quelques captures d'écran:

    une partie quelconque

    Une partie quelconque;

    territoire


    Décompte des points ;


    kogo's joseki dictionary

    La Bibliothèque de joseki Kogo ;

    ear reddening move

    et le fameux "ear reddening move" de Shusaku :)

    État d'avancement de l'application



    L'application permet de jouer des parties complètes, elle est fonctionnelle.
    Cependant il y a certains points que je compte améliorer:
    • trouver un moyen de bien centrer le Plateau de jeu
    • Possibilité d'enregistrer et d'ouvrir des parties sauvegardées (format SGF)
    • possibilité de jouer contre GNU Go (en cours de réflexion.. ^^ )
    • ajouter une visualisation des différentes infos (date,nom des joueurs, commentaires...) trouvées dans les fichiers SGF
    • gérer les variations au cours de la partie, et lors du chargement d'un SGF (les parties de Go sont enregistrées comme des arbres, avec des variantes possibles pour chaque coup)
    • diminuer le temps de chargement d'une partie sauvegardée (actuellement 2-3 secondes pour les grosses parties, visiblement un code à optimiser :-° !!)


    J'ai commencé à coder la partie sauvegarde au format SGF, c'est la plus simple, et ça prend bien forme, des détails à régler et ça devrait être ok.

    Le 12/06/2010:
    • ajout du menu "sauvegarder" fonctionnel (ajoutez ".sgf" à la fin du nom du fichier !)
    • correction de l'IA: normalement, elle n'essaye plus de jouer de coups interdits (mais... elle est toujours aussi stupide et ennuyeuse... ^^ )
    • correction de la taille des boutons (le texte ne s'affichait pas entièrement sous Windows)


    Le 13/06/2010:
    • travail sur le menu "ouvrir"
    • correction d'un bug dans la gestion des handicaps


    Le 14/06/2010:
    • modification du code d'affichage du plateau: il est désormais bien centré en toutes circonstances :)
    • vérification de la compatibilité des parties sauvegardées avec CGoban3 et Goban (Mac)

    Le 22/02/2014 o_O:-°:soleil::waw:

    Je Reprends les choses en main ? En tout cas, malgré des études très prenantes, et qui n'ont strictement rien à voir avec l'informatique, j'ai réussi à avancer un peu dans mon appli :).

    J'ai effectivement tout repris depuis le début! Ce qui me permet de me retrouver avec un Moteur de jeu qui ne stocke pas ni ne manipule des tonnes d'ArrayList à chaque coup... ça me semble bénéfique :).
    À la place, un plateau de jeu stocké dans un Integer[361] (dimensions du plateau) , et l'arbre de jeu dans des GoNodes, héritant bien sur ... de DefaultMutableTreeNode :)

    Le Bilan:

    • règles du jeu : respectées
    • Chargement des fichiers: de plus en plus de fonctionnalités ajoutées, les commentaires, formes (triangles etc.) et divers numéros sont chargés
    • J'ai même fait un Visualiseur d'arbre, qui permet de cliquer sur les coups joués pour se déplacer dans les différentes variations
    • Territoire et Points : Normalement tout fonctionne, quand chaque joueur passe on entre en mode "territoire" , et les points sont comptés !

    Par contre, certaines fonctionnalités décrites dans les updates plus anciens peuvent ne pas être présentes ..

    On ne peut pas sauvegarder les parties par exemple !



    Liens


    Application Compilée (22/02/2014)

    Sources (22/02/2014)

    À propos du code:

    Oui, il est absolument dégueulant de centaines de lignes mises en "comment", de méthodes qui ne servent pas encore ou qui ne servent plus, et puis non, je ne sais pas utiliser le Controler dans un MVC :D , le mien transmet juste directement au Model , et en plus de ça, je ne suis pas certain d'envoyer correctement les infos du model à la vue ...

    J'ai aussi un problème de performance: mon visualiseur d'arbre de jeu fonctionne bien pour des parties normales, mais quand je charge la bibliothèque de joseki (qui doit contenir 10 000 coups différents environ, d'après mes souvenirs), le programme prend 2 secondes à chaque coup rien que pour l'arbre .... J'ai un peu de mal à trouver une solution ...

    bref , ça fonctionne, mais c'est pas forcément jojo !!!

    Voilà, merci de m'avoir lu,
    si vous avez des idées, conseils, critiques,éloges :D , je suis toute ouïe !

    -
    Edité par mikake 22 février 2014 à 11:03:56

    • Partager sur Facebook
    • Partager sur Twitter
      10 juin 2010 à 20:02:53

      Moi je trouve ça déjà bien comme projet. C'est quand même d'envergure. Ne pouvant actuellement rien télécharger je n'ai pas pu essayer :(
      • Partager sur Facebook
      • Partager sur Twitter
        10 juin 2010 à 21:06:50

        C'est pas mal comme jeu, bon courage pour la suite :)
        • Partager sur Facebook
        • Partager sur Twitter
          10 juin 2010 à 21:30:27

          Si tu clique sur l'Applet, ça s'ouvre dans une page web , pas besoin de téléchargement ! :)
          • Partager sur Facebook
          • Partager sur Twitter
            11 juin 2010 à 21:27:10

            Bonjour , ton jeux est plutôt pas mal.
            Mais les boutons "passer" et "recommencer" sont trop petit et donc n'affichent pas le texte en entier.

            J'ai aussi vu un bug (a moins que ca ne soit une règle du jeu mais ça me parait bizarre):
            A parti d'un certain moment en jouant contre l'ordinateur , je peux me mettre a jouer ses coups à sa place ( en plus des pions noir , je peux jouer les pions blancs .) et ce jusqu'a la fin de la partie , comme s'il se mettait en mode joueur contre joueur.

            Bonne soirée
            • Partager sur Facebook
            • Partager sur Twitter
              12 juin 2010 à 0:18:55

              Ah, il faut que je teste sous Windows, sur mac les textes s'affichent, j'ai déjà eu le coup avec un autre prog.

              Pour l'ordi, je l'ai mal codé :s , (et je ne suis pas chaud pour développer une IA xD), j'ai juste ajouté le fait qu'il tente d'empecher le joueur de lui prendre des pierres, donc il essaye de jouer là ou une pierre va etre prise.
              Le problème c'est qu'il se retrouve parfois à vouloir jouer à des endroits interdits: le suicide:
              Image utilisateuren rouge : coup interdit pour le joueur NOIR.
              (image: jeudego.com)

              ... ce qui est interdit selon les règles (en général)

              Donc l'ordi est mal fichu, ne jouez pas contre lui ...

              quelqu'un sait si un programme java pourrait jouer des parties contre GNU Go ?
              je n'ai pas encore beaucoup regardé..

              merci à vous !!!
              • Partager sur Facebook
              • Partager sur Twitter
                12 juin 2010 à 11:50:12

                Je préfère nettement voir ce genre de projet plutôt que des MMORPG sans avenir :)

                Beau projet, graphismes assez sympas bref c'est vraiment bien :)

                Seul point négatif:

                Tu fais ça à titre d'entraînement et tu ne diffuse même pas les sources ! Les expérimentés du Java ne sauront te donner des conseils techniques comme ça :(
                • Partager sur Facebook
                • Partager sur Twitter
                  12 juin 2010 à 11:54:13

                  oui, c'est prévu!
                  je les publierai après les avoir un peu organisées et commentées....

                  j'ai bien peur que ça ne "pique aux yeux" de certains.... j'apprends sur le tas, alors ça sera sans doute pas très propre ^^ !

                  mais je les mettrai sous peu !
                  • Partager sur Facebook
                  • Partager sur Twitter
                    12 juin 2010 à 11:56:43

                    C'est normal que ce soit pas propre pour un premier projet. Tu verras les 4 - 5 premiers projets, le code sera sale, t'en seras pas forcément très satisfait. Les gens feront des commentaires, tu vas t'éfforcer à les appliquer et tu acquiera une certaine rigueur/routine qui fait que ton code sera déjà plus agréable et à ce moment là tu pourras attaquer de bons projets :)

                    Bref, j'aimerais bien voir les sources. Bien que je ne code quasiment pas en Java mais plutôt en C++, je pourrais donner d'avis que sur l'architecture du programme.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      12 juin 2010 à 19:32:12

                      je viens de poster les sources :).

                      j'ai ajouté les JMenuItem "sauvegarder" et "Ouvrir" ... normalement le "sauvegarder" fonctionne, mais je ne l'ai pas encore suffisamment testé.
                      (note: il faut mettre ".sgf" en extension au fichier sauvegardé ... je vais chercher le moyen de le faire automatiquement.)

                      le menu "ouvrir" .... "fonctionne presque mais ne fait rien" xD. je suis en train de le coder, certaines infos apparaissent en console quand on ouvre un fichier sgf, mais je suis loin d'avoir terminé son implémentation concrète.

                      pour les sources, j'ai essayé de réorganiser un peu mon code, j'ai commenté comme je pouvais, y'a même un tout petit topo en en-tête de la classe "model" , histoire d'expliquer deux trois trucs sur le fonctionnement.
                      Si ça peut servir à quelqu'un ...

                      Je pense que mon code sera malheureusement difficilement lisible.... et peut-être même parfois incohérent :D !
                      faites moi part de vos impressions, je corrigerai et modifierai en fonction ^^ .

                      Merci à vous pour ces commentaires encourageants !!!
                      • Partager sur Facebook
                      • Partager sur Twitter
                        12 juin 2010 à 20:41:29

                        J'ai regarder le code source, bien que ça fasse un bail que j'ai pas fais de java (et là j'étais un peu perdu parfois :p ), je trouve le code bien décomposé, bonne utilisation de la POO. C'est propre quoi.

                        Par contre, ma remarque ne concerne que le point de vue architecture.

                        Par contre, le code de l'IA me paraît lourd. à quoi servent les classes joueur et humain ?! ça servira plus tard je suppose ?
                        • Partager sur Facebook
                        • Partager sur Twitter
                          12 juin 2010 à 20:49:30

                          Merci, j'ai appris MVC ici, ç'a m'a permis d'avoir une bonne base (même si je ne vois pas très bien l'utilité des classes abstraites pour model et controler, je n'ai pas saisi quel problème ça résolvait :) )

                          effectivement, le code de l'IA est vraiment moche (surtout pour ce qu'elle fait xD), je pense zapper tout ça.

                          en ce qui concerne les joueurs, je pensais faire un truc avec un nom, des stats de score (basiques), enfin à vrai dire je ne sais pas trop, et elles ne servent à rien à l'heure actuelle :).

                          Diantre, je suis en train de tester l'app sur WinXP , c'est affreusement et ignoblement moche :s !ça va être fastidieux à gérer, les différences d'affichage entre systèmes.. enfin c'est pas ma tasse de thé ^^
                          • Partager sur Facebook
                          • Partager sur Twitter
                            14 juin 2010 à 22:43:19

                            Bonsoir, j'ai apporté quelques modifications au projet: le plateau est maintenant calculé pour être bien centré quelle que soit la taille de la fenetre.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              17 juin 2010 à 17:25:47

                              Pour répondre à l'une des questions, oui on peut faire jouer un programme Java contre GNU Go. J'en ai déjà croisé plusieurs qui le faisaient.

                              Sur le plan technique, il me semble que GNU Go utilise le protocole GTP (Go Text Protocol). Bref, il suffit de l'implémenter pour pouvoir affronter cette IA.
                              En plus, en implémentant GTP tu pourras également te connecter à des serveurs de Go (NNGS et IGS, mais pas KGS malheureusement) pour faire des parties en réseau.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                17 juin 2010 à 18:43:17

                                j'essaye de regarder un peu cet aspect justement, et je ne vois pas du tout comment je vais m'arranger pour faire ça ... gnu go est codé en c , comment un programme java pourrait-il lui envoyer des commandes ???
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  17 juin 2010 à 20:04:42

                                  Mais c'est chaud de gagner contre l'ordi. Comme on fait un 1 coup par un il pare toujours quand on veut mettre le dernier
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    17 juin 2010 à 20:15:35

                                    mon IA ?? haha, tout ce qu'elle fait c'est jouer au hasard, et quand elle peut prendre une pierre elle le fait, quand elle voit qu'elle va se faire manger elle essaie de se sauver.

                                    Mais.. elle est incapable de faire le moindre territoire, elle ne comprend RIEN !!! :)

                                    La programmation d'une IA, je ferai ça tout seul quand j'aurai vécu quelques vies de plus .... pour l'instant, je vais essayer de faire jouer GNU go :)
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      18 juin 2010 à 13:28:06

                                      Ouais mais ce que je veux dire c'est qu'elle se sauve tout le temps ! touuut le temps ! xD
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        30 juin 2010 à 14:15:40

                                        Citation : mikake

                                        j'essaye de regarder un peu cet aspect justement, et je ne vois pas du tout comment je vais m'arranger pour faire ça ... gnu go est codé en c , comment un programme java pourrait-il lui envoyer des commandes ???



                                        Désolé de répondre si tard.
                                        A priori, il suffit que ton programme lance l'execution de gnu go. Ensuite pour lui envoyer des info, il faudra écrire sur l'entrée standard de gnu go; et pour lire ses réponses, surveiller sa sortie standard.
                                        Et comme le protocole GTP est basé sur du texte (et non pas du binaire), tout se passera par des manipulations de String


                                        edit: pour les intéractions entre Java et une appli externe, voila quelques explications http://ydisanto.developpez.com/tutoriels/j2se/runtime/
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          25 juillet 2010 à 1:53:14

                                          Citation : Ghent

                                          Pour répondre à l'une des questions, oui on peut faire jouer un programme Java contre GNU Go. J'en ai déjà croisé plusieurs qui le faisaient.

                                          Sur le plan technique, il me semble que GNU Go utilise le protocole GTP (Go Text Protocol). Bref, il suffit de l'implémenter pour pouvoir affronter cette IA.
                                          En plus, en implémentant GTP tu pourras également te connecter à des serveurs de Go (NNGS et IGS, mais pas KGS malheureusement) pour faire des parties en réseau.




                                          Quelques informations sur le go text protocol : ici

                                          Quant à kgs il faut utiliser la Kgsgtp : ici

                                          Avec le premier lien tu as toute les spécifications afin d'envoyer les bonnes informations à gnugo pour qu'il joue contre un humain.
                                          Avec le premier et le deuxième, toutes les infos pour connecter un bot à kgs.

                                          Je pourrait pas te donner d'info en java, mais des pistes éventuels sur la gtp. Enfin, si tu es arrivé à ce niveau de programmation pour le projet tu devrais t'en sortir.
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            25 juillet 2010 à 13:39:03

                                            Merci, Ghent, et désolé à mon tour de cette réponse outrageusement tardive :) . Ton lien semble taper pile au coeur de mon problème, je vais potasser tout ça .

                                            ce sera certainement long et fastidieux, car n'ayant d'autre formation à la POO que celle du sdz (et autres), je pense qu'il y a beaucoup d'aspects que j'ignore / ne maitrise pas .
                                            Mais je suppose qu'il faut que je m'y attèle pour progresser :).

                                            Et je pourrai,grâce à ton lien hototo, m'attaquer à la communication proprement dite avec GNU Go !

                                            En revanche, j'ai peur que la création d'un bot pour kgs ne soit pas au programme, je ne pense même pas être capable de réaliser les bots les plus mauvais qu'on trouve sur kgs .... vraiment un trop gros boulot..
                                            cela dit ça peut être intéressant à garder sous le coude au cas ou.

                                            Le problème est aussi que je ne sais pas si ma programmation est bien construite, je ne suis que fraichement (auto-)initié à la POO , et je ne sais pas si ce que j'ai fait est très clean... ou en tous cas pas ignoblement dégueu quoi .

                                            Si un programmeur Java, âme charitable, jetais un coup d'oeil (2 minutes , pas plus, juste pour voir en gros!) à mes sources, et me disait ce qu'il en pense (insultes acceptées xD),
                                            Ça m'aiderait certainement beaucoup à progresser !!!

                                            Merci à vous en tous cas, pour vos conseils !!

                                            -
                                            Edité par mikake 22 février 2014 à 17:27:58

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              17 septembre 2010 à 15:59:15

                                              Alors, est-ce que tu as avancé sur ton projet ?
                                              Une âme charitable t'es toujours nécessaire ?
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                17 septembre 2010 à 19:50:46

                                                j'ai un tout petit peu avancé, mais il me semble que quelques modifications de la base seraient nécessaires pour avoir un code plus efficace... on m'a par exemple suggéré d'utiliser un tableau à une dimension car java gère très mal les "[][]" ^^... et puis, pour les coordonnées j'utilise des objets Dimension(), et je vient de découvrir les objets Point(), qui utilise des entiers et non des doubles , je suppose que c'est nécessaire !

                                                à part ça, j'ai une idée pour une prochaine étape, je viens de coder une horloge pour jouer au go, la "GO' Clock" ! et je souhaiterai l'implanter au projet, pour jouer des parties avec temps :) ! Mais je cherche la façon la plus logique de l'ajouter à mon projet, le bon endroit ^^!
                                                (la GO'Clock est ici, c'est pas fini, des finitions d'interfaces (images, ergonomie, ce genre de trucs sympa) sont en cours, et je voudrais bien faire une version mobile (sympa d'avoir une horloge toujours sur soi, non ?? :D ), mais j'ai jamais touché au J2ME, et je ne souhaite pas m'éparpiller :D)

                                                Et enfin, oui, j'aurais certainement bien besoin d'une âme charitable, qui pourrait me donner un coup de main pour gnuGo et la fonction exec() , je n'ai RIEN réussi à faire avec, pas un petit pas, alors je ne sais plus comment avancer ..!
                                                et puis, quelques conseils plus généraux m'aideraient sans doute... :D


                                                merci pour l'intérêt que tu portes à mon projet, ça me donne envie de me bouger ^^
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  17 septembre 2010 à 20:06:28

                                                  Citation : Victor01

                                                  Mais c'est chaud de gagner contre l'ordi. Comme on fait un 1 coup par un il pare toujours quand on veut mettre le dernier



                                                  Lol mec le go c'est pas des dames ça s'apprend ^^ .

                                                  Sinon j'ai toujours eu envie de programmer un jeu de go en java, mais pour portable, qui permettrait de jouer genre en envoyant des sms (pour quand j'suis illimité lol :p ) ou des fichiers par bluetooth ou une connerie comme ça pour pouvoir me faire des parties avec un pote.

                                                  Si tu fais ça je t'appelle monsieur.
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    17 septembre 2010 à 21:12:37

                                                    c'est malheureusement loin d'être au programme :), j'ai pas du tout les compétences! (-- pas du tout les compétences, pour l'instant! ^^)

                                                    certains logiciels permettent de jouer via bluetooth, je n'en n'ai jamais vu qui permettaient ça par sms, ca me parait complexe à mettre en place !
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      17 septembre 2010 à 22:02:43

                                                      J'avoue pour la mise en palce.
                                                      Sinon, si tu met tes sources je pourrait te le chiper et te les modifier dans ce but ? ^^

                                                      à usage personnel exclusivement, bien sur.
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        17 septembre 2010 à 22:20:24

                                                        les sources de quoi? celles du projet sont en ligne, tu peux évidemment t'en servir!
                                                        (elles sont malheureusement très opaques au déchiffrement, je pense... :s)

                                                        faudra me faire voir ;)
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          21 septembre 2010 à 9:38:10

                                                          Citation : mikake

                                                          j'ai un tout petit peu avancé, mais il me semble que quelques modifications de la base seraient nécessaires pour avoir un code plus efficace... on m'a par exemple suggéré d'utiliser un tableau à une dimension car java gère très mal les "[][]" ^^... et puis, pour les coordonnées j'utilise des objets Dimension(), et je vient de découvrir les objets Point(), qui utilise des entiers et non des doubles , je suppose que c'est nécessaire !



                                                          Pour le choix entre Point et Dimension, ne te fie pas à l'utilisation des int : même si Point stock des int, ses méthodes getX() et getY() renvoient des doubles qu'il faudra caster. Sinon il faudra passer directement par les champs x et y, car je crois qu'ils sont publiques. Et il me semble (je peux me tromper) que Dimension fonctionne de la même manière. Par contre sur le plan sémantique, ton code sera plus facile à lire si on comprend tout de suite que ce sont des emplacement (Point) et pas des tailles (Dimension) que tu manipule. ;)

                                                          J'ai regardé très rapidement ton code et j'ai aperçu deux ou trois petits détails à corriger :
                                                          - tout d'abord une étourderie : tu fais une comparaison de chaine avec un != au lieu d'utiliser un equals() :-°
                                                          - quelques actions qui me semblent inutiles : tu fais des new String("chaine") au lieu d'utiliser directement "chaine" et tu fais des concaténations avec des chaines vides pour convertir des int en String.
                                                          - utilisation de HashTable qui est déprécié

                                                          Voila. Pour le reste, je n'ai pas vraiment eu le temps de regarder de plus près. Mais si j'ai l'occasion de m'y pencher ces prochains jours je le ferais.
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            21 septembre 2010 à 11:22:53

                                                            Okay, donc Point apportera de la lisibilité, rien de plus! Cela dit, ca compte!

                                                            Merci pour ces remarques, hum je pense que mon code doit être vraiment bordélique, ça fait longtemps que je l'ai travaillé, je vais m'attacher à l'améliorer et à le nettoyer avant d'ajouter encore et encore des choses :).

                                                            -ouaip, c'est vrai que je fais souvent ça je pense, comparer les chaines via == ... je me disais que comme ça fonctionne, pourquoi pas !

                                                            - pour la concaténation, tu parles de sysout(""+k) pour afficher une variable ? hum, je fais ça à longueur de journée, et je ne connais pas d'autre solution ??

                                                            - je ne savais pas que Hashtable était déprécié, oui je l'utilise pour la position des pierres de handicap, hum, je trouverai bien un autre moyen !

                                                            merci en tous cas, ça fait vraiment plaisir ^^
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              21 septembre 2010 à 11:35:04

                                                              La différence entre == et equals() est que == vérifie si les deux objet désignent la même instance alors que equals vérifie simplement si les deux objets ont la même valeur.

                                                              System.out.println() fonctionne très bien avec un int en paramètre à la place d'un String. Donc il suffit juste d'effacer ""+

                                                              Pour ton problème de communication avec gnuGo, je vais voir si je peux te faire un exemple fonctionnel ce soir. Je ne l'ai malheureusement pas sous la main au boulot... (sinon, ce serait trop tentant de jouer ^^)
                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              [Java] [jeu de Go] JWeiqi, le Jeu de Go en Java

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown