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 :

Codage d'un jeu


Sujet :

avec Java

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Codage d'un jeu
    Bonjour,

    Tout d'abord je ne sais pas si je pose ma question au bon endroit mais comme je suis débutant en Java, je crois que c’est la catégorie qu'il faut.

    Je suis en école d'ingénieur et nous devons réaliser un projet de codage Java sur NetBeans.

    Mon collègue et moi devons coder un jeu de cartes ("La belle lucie") mais nous avons un petit problème.

    Nous avons bien créé les différentes classes de notre projet mais il nous manque un petit détail :
    Lorsque dans le "main" nous mettons nos instructions (création des cartes, distribution, etc ...), nous sommes coincés.
    En effet, on lance une première fois le programme pour la création du jeux mais dans un second temps, lorsqu'on demande un déplacement de cartes grâce à la méthode "déplacer carte", nous devons relancer le programme ce qui entraine la création d'un nouveau jeu.

    Donc notre comment créer un jeu une seule fois et pouvoir réaliser les déplacements par la suite sans créer un nouveau jeu lors de chaque run ?

    Voilà, j'espère avoir été suffisamment clair.

    Merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    Bonjour,

    Petite question ton jeu est en graphique ou en console?
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    L'interface graphique est une option si on a le temps mais se sera finalement en console.

  4. #4
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    ok donc il faut que ton jeu soit en " flux continue", j'entend par la qu'une fois ton programme lancé, tu initialises le jeu de carte il faut qu'une action soit déclencher par une action utilisateur sur la console, saisie au clavier.

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    System.out.println("Bonjour, voulez vous lancer le jeu? 1/ Oui 2/Quitter");
     
    Saisie clavier
     
    // selon le résultat
    Switch (result)
    case 1 : LancerJeu();break;
    case 2 : exit(0);break;
    Pour moi, un jeu en console c'est beaucoup de switch case selon le choix de l'utilisateur. Ainsi le jeu avance en fonction du choix des utilisateurs.
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    J'ai bien compris ta proposition mais je doit préciser quelques informations.
    Nous avons commencé Java cette année et nous écrivons sur netbeans.
    En fait pour chaque projet, on a un "main" et les différentes classes et tout ce passe dans le "main" pour les instructions ; donc je ne sais pas si c'est totalement une console.

    Par exemple, dans le main nous avons :

    mélangerJeu();
    créerPile(); // Création des 17 piles de cartes
    déplacement.placerAs();
    ...
    etc.

    Donc c'est pour ça que quand on run le programme à chaque fois, on a un nouveau jeu.

    La saisie clavier est donc nouveau pour nous..
    Si l'on veut déplacer une carte nous écrivons par exemple :

    déplacerCarte(carteDépart , carteArrivée); // la méthode s'occupe de faire les vérifs de déplacement possible et enlève la carte de la pile de départ pour la mettre sur la pile d'arrivée (chaque pile est une arraylist).

  6. #6
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    Par exemple, dans le main nous avons :

    mélangerJeu();
    créerPile(); // Création des 17 piles de cartes
    déplacement.placerAs();
    ...
    etc.
    Oui tout seras dans ton main, mais entre les actions des joueurs et des opérations il faut bien une "pause" un moyen de stopper le jeu pour faire intervenir l'utilisateur pour jouer. Cette opération ce fait forcement par une saisie clavier en mode console.

    Je ne connais pas le jeu mais je suppose que le déplacement c'est l'utilisateur qui choisie sa carte et cette opération ne peut être faite que par une saisie puis le jeu peut reprendre avec tes calculs. Après avoir mélangerJeu() créerPile(); // Création des 17 piles de cartes c'est bien l'utilisateur qui choisi sa carte?
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Oui c'est bien ça.
    Une fois que tout est distribuer, tout les déplacements de carte sont choisis par l'utilisateur.

    En gros c'est un jeu de type solitaire où les cartes forment 17 piles de 3 cartes et il y a 4 piles prévu pour faire comme au solitaire c'est à dire les classer de As à Roi.
    (on peut y jouer en ligne sur http://labellelucie.com)

    C'est pour cela qu'on cherche à distribuer une fois les cartes et après completer le main avec les instructions de déplacement de carte sans toucher au jeu créé précedemment.

  8. #8
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    J'en reviens donc au début, une fois ton main lancé le jeu de carte initialisé il faut faire une sorte de boucle sur le jeu ainsi le jeu bouge selon les choix de l'utilisateur.

    Etape 1 : Il faut que tu affiches sur la console la table de jeu, une fois le jeu prêt il faut afficher la structure qui le contient sous une forme, semblable à celle sur le site en colonne et en ligne par exemple.

    Etape 2 : Que tu identifies le choix de l'utilisateur, par exemple ligne colonne choisi et cela par une saisie clavier.

    Etape 3: Faire le calcul si c'est possible et selon le cas valider ou marquer déplacement impossible.

    Etape 4 : Faire le déplacement si ok ou revenir à l'étape 2

    Etape 5 : refaire à partir de l'étape 1 jusqu'à la fin du jeu
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Ben je crois qu'on a le même souci encore non ?
    A chaque fois qu'on fait run on a bien l'affichage du jeu avec dans notre programme :

    Pile n°1 Cartes : [3h, 6c, jh]}
    Pile n°2 Cartes : [2d, qs, 8c]}
    ..

    Cela grâce à un System.out.println(...)

    Cela est obtenu après avoir écrit dans le main :

    melangerJeu();
    creerPile();
    creerJeu();

    Donc l'utilisateur se retrouve avec le tableau de jeu de départ.
    Par exemple il remarque que le 5 de trèfle (5c) et le 6 de trèfle (6c) sont sur le haut d'une pile. Pour liberer d'autre carte il veut mettre le 5 sur le 6.
    Ainsi dans le main précédent on rajoute :

    melangerJeu();
    creerPile();
    creerJeu();
    deplacerCarte(5c, 6c); // 5c est la carte de départ, 6c la carte d'arrivée

    Mais si on fait ça on recréé le jeu..

    Je dois me répéter mais j'ai très bien saisi ta solution..

  10. #10
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    Je m'excuse si je me fais mal comprendre, pour mieux illustrer mon idée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    public static void main(String [ ] args)
    {
    	Booleen saisie = false;
    	Booleen Fini = false;
         	melangerJeu();
    	creerPile();
    	creerJeu();
     
     
    	// C'est partie pour jouer
    	do{
                   saisie = false;
    	System.out.println(Le plateau de jeu);
     
    	while(saisie == false || str!="exit"){
    	  Scanner sc = new Scanner(System.in);
    	  System.out.println("Quelle carte voulez vous déplacer et ou?") // prenons par exemple ligneDepart|colonneDepart ligneArrive|colonneArrive
     
    	  String str = sc.nextLine();
     
    	  // il y a une attente de la saisie, l'utilisateur rentre 2|3 1|3
    	  // a ce moment tu controles le déplacement
    	  if(tout est bon)
    	       saisie = true;
    	  else
    	     System.out.println("Erreur de saisie");
    	}
     
             // traitement du deplacement, modification donc du plateau de jeu
     
    	if( fin du jeu, plus de carte par exemple ou jeu bloqué)
    	Fini = true;
    }While(Fini == false);
     
    }
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Ah ok je comprend !
    En fait on lance run une seule fois au début et après tout se passe avec le truc "scanner" ? Et cela fait appel directement aux méthodes de déplacement sans tout relancé le main ?

  12. #12
    Modérateur
    Avatar de XxArchangexX
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mars 2012
    Messages
    1 159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2012
    Messages : 1 159
    Points : 2 323
    Points
    2 323
    Par défaut
    Scanner est une classe java qui effectue une attente de demande de saisie au clavier de la part de l'utilisateur sur la console.

    Il faut que tu appels tes méthodes de déplacement et de verif au bon endroit ,pour faire un traitement répétitif sans relancer le main à chaque fois tu dois forcement passer par une boucle. Dans mon code d'exemple c'est le Do while qui fais l'objectif "tant qu'il peut jouer on demande à l'utilisateur de déplacer une carte". et mon while dit : " tant que l'utilisateur demande un déplacement impossible on lui redemande un déplacement".

    Après c'est tes classes de règle de gestion du jeu qui font le reste.
    L'Etat est bien administré quand l'escalier de l'école est usé et que l'herbe croît sur celui du tribunal.

    Modérateur BI

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Ah merci nickel, c'est juste la méthode qu'il nous fallait !
    C'est génial, on a pas à refaire le jeu à chaque fois

    Bon il nous reste encore des bugs à corriger mais on va essayer de finir.
    Au cas-où je reposerai une petite question.

    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/01/2012, 22h31
  2. Quel style de DirectX pour un jeu 2D ?
    Par delire8 dans le forum DirectX
    Réponses: 34
    Dernier message: 31/07/2003, 00h47
  3. [Accents - XML] Problème de codage non supporté !!
    Par Smortex dans le forum Composants VCL
    Réponses: 6
    Dernier message: 24/11/2002, 11h00
  4. Une déclaration pour la survie du jeu vidéo en France
    Par Freakazoid dans le forum DirectX
    Réponses: 1
    Dernier message: 30/10/2002, 14h31
  5. codage objet
    Par charly dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 22/08/2002, 16h49

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