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;
}
} |
Partager