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 :

jeu de la vie en java.


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 762
    Par défaut jeu de la vie en java.
    bonjour,
    je serais assez interesse pour tenter de faire un jeu de la vie en java.
    mais je ne sais absolument pas comment m'y prendre, ni par ou commencer.
    je developpe avec Netbeans. je voudrais faire quelque chose de tout simple.
    quelqu'un aurait des infos, bouts de code ou autre svp ?
    j'ai cherche sur le net, malgre plein de pages et d'applet, pas trouve quelque chose qui puisse m'aider a debuter le prog.

    merci d'avance,
    tres cordialement,

    ANDRE Ani

  2. #2
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    Si tu veux une interface graphique tu peux utiliser le SWING.

    Affichage :
    intermédiaire : tu utilise des boutons pour représenter les cellules. Et et GridLayout pour les placer. Pour modifier les états des cellules tu peux modifier la couleur des boutons par exemple
    expert : tu redéfini la méthode paintComponent(Graphics g) de ton panel. Tu dessine une grille. Et tu gère les clique de la souris pour modifier les états des cellule (modification de la couleur)

    Gestion du temps :
    Soit un Thread soit un Timer qui toutes les x ms appelle la méthode evolution()

    Gestion des cellules :
    Pas de mystère, il faut utiliser un tableau à 2 dimensions (int ou boolean). A toi de remplir la méthode evolution() pour parcourir toutes les cases du tableau, regarder les cases proche et changer l'état en fonction.

    En espérant avoir répondu à ta question

  3. #3
    Membre éclairé Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 762
    Par défaut
    Merci beaucoup. J'avais pas pense a des boutons pour les cases, bonne idee.
    Mais le reste me parait bien complique pour mon niveau...
    Je vais fouiller un peu le net encore pour trouver des exemples assez simple.
    Encore merci ;-)

  4. #4
    Membre Expert Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Par défaut
    Mais le reste me parait bien complique pour mon niveau...
    Exemple de Timer :
    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
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.Timer;
     
    public class Main extends JFrame implements ActionListener{
     
        int compteur = 0;
        JLabel label = new JLabel("");
        public Main(){
     
            Timer t = new Timer(500,this);//this -> ActionListener
            t.start();
     
            this.setSize(100,100);
            this.setContentPane(label);
            this.setVisible(true);
        }
     
     
        public void actionPerformed(ActionEvent e) {//Activé par le Timer
            label.setText(compteur+"");
            compteur++;
        }
     
            public static void main(String[] args){
            new Main();
        }
     
    }
    Et pour la tableau de boolean :
    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
    boolean[][] plateau = new boolean[20][20];
            //Initialisation
            for(int i=0;i<20;i++){
                for(int j=0;j<20;j++){
                    plateau[i][j] = false;
                }
            }
     
    ...
    public void evolution(){
            //Parcours du plateau
            for(int i=0;i<20;i++){
                for(int j=0;j<20;j++){
                    int compteur = 0;//nombre de case proche qui sont vivant
     
                    //On regarde les 8 case proches
                    if(plateau[i+1][j] == true) compteur++;
                    if(plateau[i+1][j+1] == true) compteur++;
                    if(plateau[i+1][j-1] == true) compteur++;
                    if(plateau[i][j+1] == true) compteur++;
                    if(plateau[i][j-1] == true) compteur++;
                    if(plateau[i-1][j] == true) compteur++;
                    if(plateau[i-1][j+1] == true) compteur++;
                    if(plateau[i-1][j-1] == true) compteur++;
     
                    //On regarde
                    if(compteur < 3 || compteur >4){
                        plateau[i][j] = false;
                    }else{
                        plateau[i][j] = true;
                    }
     
                }
            }
     
        }
    Maintenant dans evolution() il faut gérer les sorties de tableau, et faire les modifications d'un "clock" à un autre sur 2 tableaux différents.

    Bonne chance

  5. #5
    Membre éclairé Avatar de lostsoul
    Homme Profil pro
    Rédacteur web, blogueur, développeur web junior
    Inscrit en
    Novembre 2003
    Messages
    762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Rédacteur web, blogueur, développeur web junior
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2003
    Messages : 762
    Par défaut
    Merci beaucoup pour tout cela, c'est sympa ;-)
    Je vais essayer en tous cas, c'est pas gagne mais je vais tenter le coup.

Discussions similaires

  1. algorithme d'évolution du "jeu de la vie" en caml
    Par nono88 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 13/12/2006, 00h56
  2. Conway's life (jeu de la vie) pour images
    Par O( N ) dans le forum C
    Réponses: 1
    Dernier message: 26/09/2006, 02h13
  3. [Conception] Jeu de la vie
    Par deuscapser dans le forum Général Java
    Réponses: 16
    Dernier message: 09/03/2006, 12h47
  4. [VB] projet à réaliser: Jeu de la vie
    Par mauriiice dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 02/12/2005, 20h06

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