Programme Snake
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Programme Snake



  1. #1
    mhamon

    Programme Snake


    ------

    Bonjour,
    j'aimerais programmer le jeu Snake en Javascool très simplement. Sur un fond de 25 sur 25 pixels, le snake est composé de 3 pixels au démarrage.
    Merci d'avance pour votre aide

    -----

  2. #2
    Arzhur

    Re : Programme Snake

    Bonjour


    Pourquoi ne pas utiliser un éditeur "plus conventionnel" (Eclipse, Netbeans....) ? Sinon c'est du java : quels points te posent problème ?

  3. #3
    Jack
    Modérateur

    Re : Programme Snake

    Citation Envoyé par mhamon Voir le message
    Bonjour,
    j'aimerais programmer le jeu Snake en Javascool très simplement. Sur un fond de 25 sur 25 pixels, le snake est composé de 3 pixels au démarrage.
    Merci d'avance pour votre aide
    Bonne idée.
    Quelle est la question?

    petit rappel:
    http://forums.futura-sciences.com/pr...ces-forum.html

  4. #4
    mhamon

    Re : Programme Snake

    En fait, le javascool n'est pas tout à fait du java. Et je n'utilise pas d'éditeur plus conventionnel, c'est parce que notre prof nous l'impose
    Je ne suis pas bon en programmation et j'aimerais qu'on me guide au moins sur les fonctions à utiliser...
    Merci d'avance pour votre aide.

  5. A voir en vidéo sur Futura
  6. #5
    Arzhur

    Re : Programme Snake

    Bonjour,

    En fait, le javascool n'est pas tout à fait du java.
    D'accord j'ai pas creusé, mais j'avais l'impression que c'était un éditeur de Java "pour débutant".
    Et la proglet java te permet d'écrire de faire un programme en "vrai" java.

    Je ne suis pas bon en programmation
    Dans ce cas la première étape n'est pas de faire un Snake...qu'est-ce que tu sais faire concrètement ?

  7. #6
    mhamon

    Re : Programme Snake

    Arzhur : je n'ai pas le choix ! J'ai un devoir qui consiste à faire un snake. Quand je dis que dis que je suis pas bon c'est que je suis pas un boss du codage quoi
    Bref, j'ai (presque) réussi à faire le snake. Cependant, il y a une erreur : quand le snake se mord la queue, on ne perd pas mais il fait comme si c'était de la nourriture (il s'agrandit et une nouvelle nourriture apparaît, ce qui en fait 2 du coup..).
    Merci d'avance pour votre aide
    PS : voulez vous que je mette le code ?

  8. #7
    Arzhur

    Re : Programme Snake

    PS : voulez vous que je mette le code ?
    Effectivement ça aiderait bcp (n'oublie pas les balises CODE)

  9. #8
    mhamon

    Re : Programme Snake

    Voilà le code, bon tout n'est pas parfait loin de là mais bon :
    Code:
     
    //Devoir Snake
    //Alexis Gagoud - Maël Hamon, TS6
    //Rendu le 29/01/2014
     int taille =5;
    
    int click =1;
    
    boolean perdu = false;
    
    int coordoneeWidth[] = new int[1250];
    
    //Tableau largeur
    int coordoneeHeight[] = new int[1250];
    
    //Tableau hauteur
     void gameOver() {
       //Fonction affichage d'un écran noir après défaite
        for (int i =-25; i <26; i ++) {
          for (int j =-25; j <26; j ++) {
             setPixel(j, i, "black");
          }
          sleep(5);
       }
       sleep(200);
    }
    
    void perdu() {
       //Fonction qui "nettoie" l'écran et qui appelle la fonction gameOver
       perdu = true;
       click =0;
       clear();
       gameOver();
       print("Vous avez perdu.");
    }
    
    void deplacement() {
       //Fonction utilisée pour le déplacement du Snake
        while (perdu == false) {
          while (click ==1) {
             changementCoordonee();
             setPixel(coordoneeWidth[taille-1], coordoneeHeight[taille-1], "white");
             coordoneeHeight[0] = coordoneeHeight[0] +1;
             if (getPixel(coordoneeWidth[0], coordoneeHeight[0]) !=255) {
                augmentationTaille();
             }
             setPixel(coordoneeWidth[1], coordoneeHeight[1], "green");
             setPixel(coordoneeWidth[0], coordoneeHeight[0], "black");
             sleep(50);
             setRunnable(new Runnable() {
                public void run() {
                   if (getX() < coordoneeWidth[0]) {
                      click =4;} else {
                      click =2;}
                }
             }
            );
          }
          while (click ==2) {
             changementCoordonee();
             setPixel(coordoneeWidth[taille-1], coordoneeHeight[taille-1], "white");
             coordoneeWidth[0] = coordoneeWidth[0] +1;
             if (getPixel(coordoneeWidth[0], coordoneeHeight[0]) !=255) {
                augmentationTaille();
             }
             setPixel(coordoneeWidth[1], coordoneeHeight[1], "green");
             setPixel(coordoneeWidth[0], coordoneeHeight[0], "black");
             sleep(50);
             setRunnable(new Runnable() {
                public void run() {
                   if (getY() < coordoneeHeight[0]) {
                      click =3;} else {
                      click =1;}
                }
             }
            );
          }
          while (click ==3) {
             changementCoordonee();
             setPixel(coordoneeWidth[taille-1], coordoneeHeight[taille-1], "white");
             coordoneeHeight[0] = coordoneeHeight[0] -1;
             if (getPixel(coordoneeWidth[0], coordoneeHeight[0]) !=255) {
                augmentationTaille();
             }
             setPixel(coordoneeWidth[1], coordoneeHeight[1], "green");
             setPixel(coordoneeWidth[0], coordoneeHeight[0], "black");
             sleep(50);
             setRunnable(new Runnable() {
                public void run() {
                   if (getX() < coordoneeWidth[0]) {
                      click =4;} else {
                      click =2;}
                }
             }
            );
          }
          while (click ==4) {
             changementCoordonee();
             setPixel(coordoneeWidth[taille-1], coordoneeHeight[taille-1], "white");
             coordoneeWidth[0] = coordoneeWidth[0] -1;
             if (getPixel(coordoneeWidth[0], coordoneeHeight[0]) !=255) {
                augmentationTaille();
             }
             setPixel(coordoneeWidth[1], coordoneeHeight[1], "green");
             setPixel(coordoneeWidth[0], coordoneeHeight[0], "black");
             sleep(50);
             setRunnable(new Runnable() {
                public void run() {
                   if (getY() < coordoneeHeight[0]) {
                      click =3;} else {
                      click =1;}
                }
             }
            );
          }
       }
    }
    
    void positionDepart() {
       coordoneeWidth[1] =0;
       coordoneeWidth[2] =0;
       coordoneeWidth[3] =0;
       coordoneeWidth[4] =0;
       coordoneeHeight[0] =4;
       coordoneeHeight[1] =3;
       coordoneeHeight[2] =2;
       coordoneeHeight[3] =1;
       coordoneeHeight[4] =0;
    }
    
    void changementCoordonee() {
       for (int k = taille-1; k >=0; k --) {
          coordoneeHeight[k +1] = coordoneeHeight[k];
       }
       for (int k = taille-1; k >=0; k --) {
          coordoneeWidth[k +1] = coordoneeWidth[k];
       }
    }
    
    void augmentationTaille() {
       if (getPixel(coordoneeWidth[0], coordoneeHeight[0]) ==85) {
          taille = taille+1;
          apparitionFruit();
       } else {
          perdu();
       }
    }
    
    void apparitionFruit() {
       int fruit =0;
       while (fruit ==0) {
          setPixel(random( -24, 24), random( -24, 24), "blue");
          for (int x =-25; x <26; x ++) {
             for (int y =-25; y <26; y ++) {
                if (getPixel(y, x) ==85) {
                   fruit =1;
                }
             }
          }
       }
       fruit =0;
    }
    
    void main() {
       reset(25, 25);
       apparitionFruit();
       positionDepart();
       deplacement();
       reset(25, 25);
    }

  10. #9
    Arzhur

    Re : Programme Snake

    Bonjour,


    Y'a un soucis avec la fonction getPixel() ...que ton pixel soit "blue" ou "green"....elle renvoie 85. Je te conseille de bosser uniquement en niveau de gris et donc d'utiliser la fonction setPixel(int , int , int).

    Sinon n'hesite pas a commenter ton code, explique un peu ce que tu fais pour qu'on comprenne ton raisonnement tout de suite.


    EDIT : faudrait peut-être enlever/masquer les noms de famille dans le code

Discussions similaires

  1. programme qui lance un autre programme
    Par invite01c3c114 dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 10/02/2011, 12h26
  2. comment utiliser les résultats d'un programme fortran dans un autre programme
    Par invitedb78a3a3 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 30/09/2010, 19h21
  3. Programme TI-89
    Par invite693d963c dans le forum Logiciel - Software - Open Source
    Réponses: 17
    Dernier message: 25/10/2007, 17h49
  4. [Brun] Programme TV
    Par invite8f28c2f6 dans le forum Dépannage
    Réponses: 0
    Dernier message: 12/01/2007, 18h52