Séance 9- EN Groupe

Aujourd'hui, nous avons essayé de régler notre premier problème, à savoir faire bouger notre serpent constitué de plusieurs éléments.

Tout d'abord, nous avons créé 2 nouveaux carrés que nous avons positionné à gauche du carré initial, qui sera donc la tete du serpent.        Pour cela, nous avons écrit cela :

int h=150; // abscisse du 2nd carré
int v=170; // ordonnée du 2nd carré

int h2=130; // abscisse du 3eme carré
int v2=170; // ordonnée du 3eme carré

Void draw () {

...

 fill(0,100,0);   //remplit le carré de couleur vert
  rect(h,v,20,20); //affiche le carré
 
    fill(0,50,0);   //remplit le carré de couleur vert
  rect(h2,v2,20,20); //affiche le carré
 

...

if (frameCount % 10 == 0) {
if (a == true){ y=y-20;    v=y+20;h=x; v2=v+20;h2=x; } else {y=y;v=v;v2=v2;}  // les carrés se deplacent automatiquement dans la direction donnée : haut
if (b == true){ y=y+20;   v=y-20;h=x; v2=v-20;h2=x; } else {y=y;v=v;v2=v2;}  // les carrés se deplacent automatiquement dans la direction donnée : bas

if (c == true){ x=x-20;   h=x+20;v=y; h2=h+20;v2=y; } else {x=x;h=h;h2=h2;}  // les carrés se deplacent automatiquement dans la direction donnée : gauche
if (d == true){ x=x+20;   h=x-20;v=y; h2=h-20;v2=y; } else {x=x;h=h;h2=h2;}  // les carrés se deplacent automatiquement dans la direction donnée : droite

if (e == true){

  x=170;y=170;
  h=150;v=170;  
  h2=130; v2=170;
  a = false;  
  b=false;
  c=false;
  d=false;
 
  }  // les carrés reviennent a leur position de depart et restent fixe


}

// Si le serpent est sorti de la grille de jeu , il fait le tour de celle-ci
if(x>=330 )  { y=y-2;x=x;v=y+20;h=x;v2=v+20;h2=x; } // il monte le coté droit de la grille
if(x<=10  )  { y=y+2;x=x;v=y-20;h=x;v2=v-20;h2=x; }  // il descend le coté gauche de la grille
if(y<=10  )  { x=x-2;y=y;h=x+20;v=y;h2=h+20;v2=y; } // il se déplace vers la droite sur le bas de la grille
if(y>=330 )  { x=x+2;y=y;h=x-20;v=y;h2=h-20;v2=y; } // il se déplace vers la gauche sur le haut de la grille

}

Nous obtenons ceci grace à ce code :

Et lorsque l'on perd :

Nous avons ensuite pensé à utiliser la méthode _ArrayList_  ; une classe qui se comporte comme un tableau mais contrairement à un tableau, un _ArrayList_ peut changer de taille dynamiquement et peut contenir des types de données différentes. Nous avons pensé à utiliser cette méthode en observant le premier code trouvé sur internet présenté dans la séance 8.

 

Finalement , avec les conseils de notre professeur d'ISN *Monsieur Laclaverie*, nous avons abandonné cette méthode. Nous avons trouvé un programme qui pourrait peut-etre nous permettre de résoudre notre second problème, pour la collision entre le serpent et la pomme (la liste de nos derniers problèmes à résoudre afin de terminer notre programme figurent dans la séance 8).