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 :

coincé sur jeu de serpent


Sujet :

Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Points : 49
    Points
    49
    Par défaut coincé sur jeu de serpent
    bonjour ,
    Je voudrai, creer une animation type snake , mais ou le serpent se deplace aleatoirement dans un environnement de 20*20 .
    Mais , ca fait une semaine que j'essaye de trouver le moyen de faire les cases et donc de les faire suivre mais je ne trouve pas la solution
    merci pour votre aide.
    (je travaille sous processing);


    script:

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
     
     
    void ArrierePlan(){
      int i=0,j=0;
      while(j<20){
        while(i<20){
          fill(124,61,61);
          rect(10*i,10*j,10,10);
          i=i+1;
        }
        i=0;
        j=j+1;
      }
    }
     
     
    int[] x = new  int [21];
    int[] y = new int [21];
    int x1,y1;
     
    void ChangemenPos(){
      int longueur=5;
      for(int i=0;(i<longueur);i++){
        x[i+1]=x[i];
        y[i+1]=y[i];
      }
    }
    void Carre(){
      for(int i=0;(i<5);i++){
      fill(0,0,0);
        rect(x[i],y[i],10,10);
      ;}
    }
    void InitialPos (){
      x1=int(random(0,21));
      y1=int(random(0,21));
      ArrierePlan();
      x[0]=10*x1;
      y[0]=10*y1;
      for(int i=0;(i<5);i++){
        x[i]=x[i]+10;
        y[i]=y[i];
        rect(x[i],y[i],10,10);}
     
    }
    void avancer (){
      y[0]=y[0]+10;
    }
    void reculer(){
      y[0]=y[0]-10;
    }
    void gauche(){
      x[0]=x[0]+10;
    }
    void droite(){
      x[0]=x[0]-10;
    }
    void setup(){
      frameRate(1);
      size(200,200);
      InitialPos();
    }
     
     
    void draw(){
      ArrierePlan();
      int Deplacement;
      Deplacement=int(random(1,5));
      switch(Deplacement){
      case 1: 
        avancer();
        break;
     
      case 2: 
        reculer();
        break;
     
      case 3: 
        droite();
        break;
     
      case 4: 
        gauche();
        break;
      }
     
      ChangemenPos();
      Carre();
      }

  2. #2
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    faut utiliser les balises CODE
    pour gérer les cases, tu peux utiliser la structure de donnée FILE

  3. #3
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    une FIFO (cf java.util.Deque) et un Random sur le nouvel élément et le tour est joué

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Points : 49
    Points
    49
    Par défaut
    qu'est ce qu'une FIFO , dsl je suis novice :/
    (ce sont les tableau a plusieur colonnes ?)

  5. #5
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    Citation Envoyé par tonytrua Voir le message
    qu'est ce qu'une FIFO , dsl je suis novice :/
    (ce sont les tableau a plusieur colonnes ?)

    FIFO : first in first out ; ce sont Les files d'attente.

    en java tu peux utiliser java.util.Deque comme citer précédemment
    pour plus d'information tu peux voir ici

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Points : 49
    Points
    49
    Par défaut
    j'essaye avec les listes chainées mais j'ai un nouveau probleme.
    je fais et l'instruction presente dans le tutoriel mais ca me met list" list is ambigous"

    merci

  7. #7
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    tu peux faire directement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    java.util.LinkedList
    sans importer tout le package

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Points : 49
    Points
    49
    Par défaut
    j'ai reussit a creer les listes et donc a les modifier mais ,
    comment peut on recuperer les données de la liste , pour les réutiliser dedans la fonction "j'ai essayer avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     "nomdemaliste.get(indice);
    Mais dans le rectangle sa me met que c'est un object au lieu detre un float

    Merci

  9. #9
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    Citation Envoyé par tonytrua Voir le message
    dedans la fonction "
    ....
    Mais dans le rectangle sa me met que c'est un object au lieu detre un float
    d'après ton code , TA méthode rect prend en paramètre des variables type primitive et non pas des objets ,alors pourrais tu nous expliquer de plus ton problème

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 99
    Points : 49
    Points
    49
    Par défaut
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    import java.util.LinkedList;
    import java.util.List;
    void ArrierePlan(){
      int i=0,j=0;
      while(j<20){
        while(i<20){
          fill(124,61,61);
          rect(10*i,10*j,10,10);
          i=i+1;
        }
        i=0;
        j=j+1;
      }
    }
     
    LinkedList abscisse=new LinkedList() ; // on crée notre liste chaînée
    LinkedList ordonnee=new LinkedList() ; // on crée notre liste chaînée
    int x1,y1;
    int k=5; //longueur parametrable
     
    void ChangemenPos(){
      int cpt=0;
      while(cpt<k){
        String s  =abscisse.get(cpt).toString();
        float a = Float.parseFloat(s);
        String o  =ordonnee.get(cpt).toString();
        float f = Float.parseFloat(o);
        fill(0,0,0);
        rect(a,f,10,10);
        cpt++;
      }
     
    }
     
     
    void InitialPos (){
      int cpt=0;
      x1=int(random(0,21));
      y1=int(random(0,21));
      ArrierePlan();
      x1=10*x1;
      y1=10*y1;  
      for(int i=0;i<k;i++){
        abscisse.add(new Integer(x1+10*i)) ; // on ajoute l'abscisse initiale à la liste
        ordonnee.add(new Integer(y1)) ; // on ajoute l'abscisse initiale à la liste
      }
      while(cpt<k){
        String s  =abscisse.get(cpt).toString();
        float a = Float.parseFloat(s);
        String o  =ordonnee.get(cpt).toString();
        float f = Float.parseFloat(o);
        fill(0,0,0);
        rect(a,f,10,10);
        cpt++;
      }
    }
    void avancer (){
      y1=y1+10;
      ordonnee.add(new Integer(y1)) ; // on ajoute lordonnee initiale à la liste qui vient d'etre changée
      ordonnee.remove(5) ; // on retire la derniere coordonnée de la list pour que le serpent garde la meme taille
      ChangemenPos();
      }
      void reculer(){
        y1=y1-10;
        ordonnee.add(new Integer(y1)) ; // on ajoute lordonnee initiale à la liste qui vient d'etre changée
        ordonnee.remove(5) ; // on retire l'entier , le flottant devient la tete
        ChangemenPos();
        }
      void gauche(){
        x1=x1+10;
        abscisse.add(new Integer(x1)) ; // on ajoute l'abscisse initiale à laliste qui vient d'etre changée
        abscisse.remove(5) ; // on retire l'entier , le flottant devient la tete
        ChangemenPos();
        }
        void droite(){
          x1=x1-10;
        abscisse.add(new Integer(x1)) ; // on ajoute l'abscisse initiale à la liste qui vient d'etre changée
        abscisse.remove(5) ; // on retire l'entier , le flottant devient la tete
        ChangemenPos();
        }
      void setup(){
        frameRate(1);
        size(200,200);
        InitialPos();
      }
     
     
      void draw(){
        ArrierePlan();
        int Deplacement;
        Deplacement=int(random(1,5));
        switch(Deplacement){
        case 1: 
          avancer();
          break;
     
        case 2: 
          reculer();
          break;
     
        case 3: 
          droite();
          break;
     
        case 4: 
          gauche();
          break;
        }
     
     
      }

    Voila mon nouveau code , j'ai donc pu dans mes liste transformer les objet en float mais , mes carrés n'apparaissent toujours pas :/
    Besoin d'aide merci

Discussions similaires

  1. Aide pour algorithme sur jeu de dés
    Par fab56 dans le forum Intelligence artificielle
    Réponses: 3
    Dernier message: 29/02/2008, 09h56
  2. [Source] Jeu du serpent
    Par Haze. dans le forum Contribuez
    Réponses: 11
    Dernier message: 28/11/2007, 21h01
  3. Réponses: 3
    Dernier message: 07/05/2007, 19h57
  4. [MySQL] Je coince sur un mysql_fetch_assoc()
    Par lodan dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 03/11/2006, 11h42
  5. [Threads]Comment les organiser pour un jeu du serpent ?
    Par Pill_S dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 11/05/2004, 15h22

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