évènement clavier en java

velocity Messages postés 204 Date d'inscription   Statut Membre Dernière intervention   -  
velocity Messages postés 204 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

je programme un jeu Tetris en java et je doit creer un joueur virtuel qui va controler le jeu (deplacement et rotation des pièces ) mais le pb c'est que je ne sais pas comment faire pour que le joueur artificiel ( l'ordinateur ) cree les évènement clavier et les passe à la classe Listener pour les gérer.

merci d'avance.
A voir également:

6 réponses

Utilisateur anonyme
 
salut
l'architecture de ton jeu semble incorrecte.
en effet, tu doit effectuer un découpage de type MVC qui découple les évenements et les exécutions sur ton jeu. De cette manière, ton listener ne fera qu'appeler ton "moteur de jeu" et tu pourras agir sur ce dernier avec ton moteur d'IA.
0
velocity Messages postés 204 Date d'inscription   Statut Membre Dernière intervention   6
 
bonjour progjv et merci pour votre intervention mais j'avoue que j'ai pas bien compris ce que vous voulez dire .
je ne connait pas le découpage de type MVC donc si vous voulez m'expliquer un peut plus ?
J'ai trouvé qlq chose en cherchant dans google c'est la classe java.util.Robot qui apparamment permet de simuler les appuie sur le clavier, je ne sais pas trop si ca va m'aider car je la connait pas .
0
Utilisateur anonyme
 
en gros, pourquoi essayer de faire passer l'IA par l'interface graphique alors qu'il se trouve dans le code Java ? normalement l'enchainement devrait etre :
un Clic IHM -> arrive sur le Listener -> qui fait agit sur le moteur du jeu pour bouger les pieces etc

Je pense que l'IA doit intervenir de cette maniere :
IA -> agit directement sur le moteur du jeu

et non
IA -> simule un Clic IHM -> arrive sur le Listener -> qui fait agit sur le moteur du jeu pour bouger les pieces etc

ce serait plutot ma manière de penser et de coder cela

a+
0
velocity Messages postés 204 Date d'inscription   Statut Membre Dernière intervention   6
 
ah ok je comprend mnt c'est vrai , ca doit etre direct vous commencer à beaucoup m'aider j'espère que vous restiez connecté .
en faite voilà, j'ai la classe jeu qui contient la grille qui elle contient une pièce en jeu (celle qui est controlé par le clavier ) et un tableau represantant les informations internes du jeu (les bocks qu'elle contient) .
Alors le jeu implémente la classe KeyListener et fait le traitement nécessaire en passant par la grille
il y aura

if (e.getKeyCode == VK_RIGHT)
grille.pièceEnJeu.deplacer_droite();


pour le joueur artificiel j'ai créer une classe joueurArtificiel qui hérite d'une classe joueur.,
la classe joueur contient seulement les controles du jeu comme attribue et pas de methode spéciales.
la classe joueurArtificiel sur laquelle je travaille mnt, contient en plus les méthode pour simuler un joueur humain et choisir la meilleur position pour la pièce en jeu.

à la création du jeu je spécifie le joueur correspandant (car elle permet le jeu multiple)
j'aurai donc

Player p = new Player(); //ou new Player(int left,int right, int rotate)
Jeu jeu = new Jeu(p);

comme ca le jeu répendra seulement au appui clavier du joueur spécifié en argument .

c'est pour ca que je veut faire ca en simlant les appuis du clavier pour le joueur artificiel.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
bonjour,
je ne saisis pas bien le modele de données, désolé :p, mais comment va "jouer" le joueur artificiel, la est la question. Plutot que simuler reellement un joueur, qui s avere au final inutile, autant faire une classe qui utilisera directement l'objet "grille". Ce sera plus rapide, aussi bien modélisé, et beaucoup plus simple et clair.
a vous de voir.
0
velocity Messages postés 204 Date d'inscription   Statut Membre Dernière intervention   6
 
je pense que je vais faire comme vous m'avez proposez, c'est mieux comme ca .
merci pour votre aide progjv,
0