Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JAVA] Tour par tour

Comment faire ?

    12 juillet 2006 à 22:43:43

    Bonjour. J'aimerai faire un jeu de cartes, tout ce qu'il y a de plus banal: une bataille sauf qu'on à plusieurs cartes en mains.
    J'arrive à gérer l'interface graphique mais mon problème se pose lorsque le début du premier tour arrive: comment faire pour que l'ordinateur joue une carte puis, on attend que l'utilisateur clique sur une des cartes de son jeu, puis on reviens à l'ordi qui joue etc...
    Comment faire ?
    • Partager sur Facebook
    • Partager sur Twitter
      13 juillet 2006 à 12:02:01

      Je pense que le plus simple est d'avoir une classe "Maitre du jeu", une classe "Ordinateur" et une classe "Joueur".

      Le Maitre du jeu demande à chaque participant de lui donner la carte qu'il veut, en tournant en liste circulaire. Même si on ne joue à la bataille qu'à deux, il est intéressant d'avoir généralisé à N participants. Quitte à changer les règles du jeu, ca peut être sympa.

      Donc, la classe "Ordinateur" réfléchi et donne une carte au maitre du jeu. Quand c'est un joueur humain qui doit jouer, il lui est demandé de choisir (que ce soit en cliquant sur la carte, en tapant au clavier l'identifiant de la carte, etc) sa carte.

      Une fois que le maître du jeu a reçu une carte de tout le monde, il détermine qui a gagné et lui donne l'ensemble des cartes. En cas d'égalité, il faut qu'il redemande une carte aux personnes concernées.

      Si un participant n'a plus de carte alors qu'on en lui demande, il doit le signaler au maître du jeu. Si le participant est un humain, il serait intéressant que ce soit automatique. Le maître du jeu doit alors déterminer ce qu'il se passe.

      Bref après avoir demandé un certain nombre de cartes, le gagnant empoche les cartes, et les perdants sont éliminés du jeu.
      • Partager sur Facebook
      • Partager sur Twitter
        14 juillet 2006 à 11:11:35

        Merci sa m'a pas mal aider. Mais un problème persiste : comment faire pour bloquer le programme en attendant que je joueur humain clique sur le bouton pour donne la carte ? Parceque j'ai penser à faire un while() mais je me suis rendus compte que le joueur n'a pas le temps de cliquer ( ^^ ). Comment faire ?
        • Partager sur Facebook
        • Partager sur Twitter
          15 juillet 2006 à 17:27:00

          Un while n'est vraiment pas une solution propre !

          En java, il existe les observateurs qui est un design pattern assez utile ;)

          Tu définis une classe comme observer d'une autre. Dans ton interface tu notifies la classe observatrice qu'il s'est passé quelques choses (quand le gars a cliqué sur le bouton) et le prog se lance alors.

          Il y a peut-être des moyens plus simple mais je ne connais pas.
          • Partager sur Facebook
          • Partager sur Twitter
            16 juillet 2006 à 11:29:01

            Il faut utiliser un Listener, qui n'est déclenché que lorsque quelque chose (comme un click de souris) se passe.

            Pour un click sur un bouton, on utilise des ActionListener par exemple.
            • Partager sur Facebook
            • Partager sur Twitter

            [JAVA] Tour par tour

            × 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