Etat du code
Code dans un google doc (la partie du code qui est sur ce site et non sur le google doc est bugger) :
https://docs.google.com/document/d/1xXUWG4zO7WsgfSXme_kP_kn227D11GI0FGRtU9Us2V8/edit?usp=sharing
PImage menu;
PImage jeton;
PImage regle;
int sX=800, sY=700;
int X;
int Y;
int ecran_de_fin=1;
int page=0;
int taillex=114;
int tailley=116;
int Tour=1;
int nmb=0;
void setup(){
size(800,700);
menu= loadImage("p4.jpg");
jeton= loadImage("Jeton.jpg");
regle= loadImage("regle.jpg");
Definition();
}
void draw(){
credits();
jouer();
if(page==0){
menu();
}
if(page==1){
choix();
}
if(page==2){
options();
}
if(page==3){
jeu();
}
if(page==4){
jeu();
}
if(page==5){
jeu();
}
if(page==6){
credits();
}
if(page==7){
regles();
}}
void jeu(){
background(0,50,200);//couleur de l arriere planCase();
for(int E=0; E<Emplacement.length; E++){
Emplacement[E].affiche();//apllique la fonction affiche à Emplacement
Emplacement[E].chute();//apllique la fonction chute à Emplacement
Emplacement[E].test();
}
}
Case[] Emplacement=new Case[42];//création d'un tableau avec 42 cases
class Case{
int x;
int y;
String Presence;//la variable permet de stoker du texte
int J;
int num;Case(int Nx, int Ny, int Nnum){
x=Nx;//la variable x est égal a une nouvelle variable x appelé Nx
y=Ny;//la variable y est égal a une nouvelle variable y appelé Ny
Presence="vide";//la variable Presence est associé à du vide
num=Nnum;//la variable numéro de case est égal à un nouveau numéro de case
}void affiche(){
if(J==1){ if(page==3){
fill(250,0,0);}//condition,J= joueur 1 clique -> remplissage en rouge de la case(cercle)
if (page== 4){
fill(255, 0, 255);}
if (page== 5){
fill(0, 255, 255);}
}
if(J==2){
if (page==3){
fill(250,250,0);}//condition, J= joueur 2 clique -> remplissage en jaune de la case(cercle)
if (page==4){
fill(1, 215, 88);}
if (page==5){
fill(237, 127, 16);}
}
if(J==0){ fill(255);}//condition, pas de joueur sur la case -> remplissage en blanc de la case(cercle)
ellipse(x,y,70,70);// creation d'ellipse de coordonées x,y et de rayon 70
}void chute(){
if(num+7<42){//si le numéro + 7 est inférieur à 42
if(Emplacement[num+7].Presence=="vide" && J!=0){//permet de laissez afficher les jetons quand ils sont tombés
Emplacement[num+7].J=J;//permet de faire tomber les jetons
J=0;//met la couleur de joueur 0 sur les cases où le jeton est passé dans sa chute et ne s'est pas arrêté
Emplacement[num+7].Presence=Presence;//permet de de ne pas mettre un jeton sur un autre
Presence="vide";//rend les cases où il n'y a pas de jeton vides
} }
}
void test(){
for(int i=0;i<Emplacement.length; i++){
if(Emplacement[i].J==1){
if(i+3<42){
if(Emplacement[i].J==Emplacement[i+1].J && Emplacement[i].J==Emplacement[i+2].J && Emplacement[i].J==Emplacement[i+3].J){//comparaison de la case i du joueur 1 avec la case i+1 du joueur 1
text("YOU WIN",375,350);
page=8; }
}
if(i-3>0){
if(Emplacement[i].J==Emplacement[i-1].J && Emplacement[i].J==Emplacement[i-2].J && Emplacement[i].J==Emplacement[i-3].J){
text("YOU WIN",375,350);
page=8; }
}
if(i+21<42){
if(Emplacement[i].J==Emplacement[i+7].J && Emplacement[i].J==Emplacement[i+14].J && Emplacement[i].J==Emplacement[i+21].J){
text("YOU WIN",375,350);
page=8; }
}
if(i-21>0){
if(Emplacement[i].J==Emplacement[i-7].J && Emplacement[i].J==Emplacement[i-14].J && Emplacement[i].J==Emplacement[i-21].J){
text("YOU WIN",375,350);
page=8; }
}
if(i+24<42){
if(Emplacement[i].J==Emplacement[i+8].J && Emplacement[i].J==Emplacement[i+16].J && Emplacement[i].J==Emplacement[i+24].J){
text("YOU WIN",375,350);
page=8; }
}
if(i-24>0){
if(Emplacement[i].J==Emplacement[i-8].J && Emplacement[i].J==Emplacement[i-16].J && Emplacement[i].J==Emplacement[i-24].J){
text("YOU WIN",375,350);
page=8; }
}
if(i+18<42){
if(Emplacement[i].J==Emplacement[i+6].J && Emplacement[i].J==Emplacement[i+12].J && Emplacement[i].J==Emplacement[i+18].J){
text("YOU WIN",375,350);
page=8; }
}
if(i-18>42){
if(Emplacement[i].J==Emplacement[i-6].J && Emplacement[i].J==Emplacement[i-12].J && Emplacement[i].J==Emplacement[i-18].J){
text("YOU WIN",375,350);
page=8; }
}}
if(Emplacement[i].J==2){
if(i+3<42){
if(Emplacement[i].J==Emplacement[i+1].J && Emplacement[i].J==Emplacement[i+2].J && Emplacement[i].J==Emplacement[i+3].J){//comparaison de la case i du joueur 2 avec la case i+1 du joueur 1
text("YOU WIN",375,350);
page=8; }
}
if(i-3>0){
if(Emplacement[i].J==Emplacement[i-1].J && Emplacement[i].J==Emplacement[i-2].J && Emplacement[i].J==Emplacement[i-3].J){
text("YOU WIN",375,350);
page=8; }
}
if(i+21<42){
if(Emplacement[i].J==Emplacement[i+7].J && Emplacement[i].J==Emplacement[i+14].J && Emplacement[i].J==Emplacement[i+21].J){
text("YOU WIN",375,350);
page=8; }
}
if(i-21>0){
if(Emplacement[i].J==Emplacement[i-7].J && Emplacement[i].J==Emplacement[i-14].J && Emplacement[i].J==Emplacement[i-21].J){
text("YOU WIN",375,350);
page=8; }
}
if(i+24<42){
if(Emplacement[i].J==Emplacement[i+8].J && Emplacement[i].J==Emplacement[i+16].J && Emplacement[i].J==Emplacement[i+24].J){
text("YOU WIN",375,350);
page=8; }
}
if(i-24>0){
if(Emplacement[i].J==Emplacement[i-8].J && Emplacement[i].J==Emplacement[i-16].J && Emplacement[i].J==Emplacement[i-24].J){
text("YOU WIN",375,350);
page=8; }
}
if(i+18<42){
if(Emplacement[i].J==Emplacement[i+6].J && Emplacement[i].J==Emplacement[i+12].J && Emplacement[i].J==Emplacement[i+18].J){
text("YOU WIN",375,350);
page=8; }
}
if(i-18>42){
if(Emplacement[i].J==Emplacement[i-6].J && Emplacement[i].J==Emplacement[i-12].J && Emplacement[i].J==Emplacement[i-18].J){
text("YOU WIN",375,350);
page=8; }
}}
}
}
}
void Case () {
for(int i=0;i<Emplacement.length; i++){//compteur de boucle variant de 0 à 42
if(mouseX>=Emplacement[i].x-55 && mouseX<=Emplacement[i].x+taillex-55){//condition si un joueur clique entre une certaine position de x
if(mouseY>=Emplacement[i].y-55 && mouseY<=Emplacement[i].y+tailley-55){//condition si un joueur clique entre une certaine position de y
if(Emplacement[i].Presence=="vide"){//si l'emplacement de la case est vide
if(mousePressed==true){//si la souris est presser
if(Tour==1){//si on est au tour 1
Emplacement[i].J=1;//l'emplacement cliqué va être de la couleur du joueur 1
Tour=2;//ça passe au tour 2
Emplacement[i].Presence="Pion J 1";//le Pion 1 est appliqué à l'emplacement
mousePressed=false;//si la souris n'est presser pas il ne se pas rien
} }
if(mousePressed==true){//si la souris est presser
if(Tour==2){//si on est au tour 2
Emplacement[i].J=2;//l'emplacement cliqué va être de la couleur du joueur 2
Tour=1;//ça passe au tour suivant
Emplacement[i].Presence="Pion J 2";//le Pion 2 est appliqué à l'emplacement
mousePressed=false;//si la souris n'est presser pas il ne se pas rien
} }
}
}
}
}
}
void Definition(){
for(int yligne=0; yligne<6; yligne++){//compteur de boucle variant de 0 à 6
for(int xcolonne=0; xcolonne<7; xcolonne++){//compteur de boucle variant de 0 à 7
Emplacement[nmb]= new Case((xcolonne+1)*(114)-55,(yligne+1)*(116)-55, nmb);//place les differentes "cases"
nmb++;
}
}
}
void choix(){
background(255);
fill(0,50,200);
rect(0,0,800,80);
fill(255);
rect(0,80,266,700);
rect(266,80,266,700);
rect(532,80,266,700);
rect(30,530,206,100);
rect(296,530,206,100);
rect(562,530,206,100);
rect(45,120,180,1/3);
rect(325,120,150,1/3);
rect(605,120,133,1/3);
fill(255);
textSize(40);
text("Choix des Couleurs",215,60);
fill(0);
textSize(20);
text("Couleurs classiques",40,115);
text("Couleurs pastels",317,115);
text("Couleurs vives",600,115);
text("Joueur 1",20,210);
text("Joueur 2",20,320);
text("Joueur 1",290,210);
text("Joueur 2",290,320);
text("Joueur 1",560,210);
text("Joueur 2",560,320);
textSize(30);
text("Démarez la",50,570);
text("partie",90,610);
text("Démarez la",320,570);
text("partie",350,610);
text("Démarez la",580,570);
text("partie",620,610);
fill(250,0,0);
ellipse(60,250,40,40);
fill(250,250,0);
ellipse(60,360,40,40);
fill(255, 0, 255);
ellipse(330,250,40,40);
fill(1, 215, 88);
ellipse(330,360,40,40);
fill(0, 255, 255);
ellipse(600,250,40,40);
fill(237, 127, 16);
ellipse(600,360,40,40);
}
void regles(){
regle.resize(sX, sY);
background(regle);
fill(0);
textSize(20);
text("Le jeu de puissance est un jeu simple, rapide et classique.",40,200);
text("Le but est d'alligner 4 jetons de sa propre couleurs en verticale, horizontal",40,250);
text("ou diagonal avant l'autre joueur.",40,300);
text("Le plateau de jeu a 42 cases disposés en 6 lignes et 7 colonnes.",40,350);
text("Les jetons sont répartis équitalement : 42 jetons de 2 couleurs différentes.",40,400);
text("Et il faut être deux joueurs.",40,450);
text("Si tout les jetons sont joués sans un vainqueur alors il y a match nul.",40,500);
text("Bonne chance.",40,550);
textSize(40);
text("Règles du jeu",280,100);
rect(290,115,250,1/3);
fill(255);
rect(0,620,160,60);
fill(0);
textSize(35);
text("Retour",20,665);
}
void credits(){
background(255);
fill(0);
textSize(40);
text("Crédits",300,100);
textSize(30);
text("Réalisé par :",50,200);
text("Fait sur Processing",50,550);
textSize(20);
text("Maréva Benjamin",70,275);
text("Clément Pelet",70,325);
text("Léa Labourdere",70,375);
fill(255);
rect(310,110,120,1/3);
}
void menu(){
menu.resize(sX, sY);
background(menu);
fill(255);
rect(260,275,280,80);
rect(260,400,280,80);
rect(200,122,400,80);
texte();
}
void jouer(){
X=mouseX;
Y=mouseY;
}
void mouseReleased(){
if (page==0 && X>260 && X<540 && Y>280 && Y<360){
page=page+1;
}
if(page==1 && X>30 && X<236 && Y>530 && Y<630){
page=page+2;
}
if(page==1 && X>296 && X<502 && Y>530 && Y<630){
page=page+3;
}
if(page==1 && X>562 && X<798 && Y>530 && Y<630){
page=page+4;
}
if(page==0 && X>260 && X<540 && Y>400 && Y<480){
page=page+2;
}
if(page==2 && X>245 && X<555 && Y>122 && Y<202){
page=page+5;
}
if(page==2 && X>0 && X<200 && Y>620 && Y<680){
page=0;
}
if(page==7 && X>0 && X<200 && Y>620 && Y<680){
page=2;
}
}
void texte (){
textSize(50);
fill(#C60800);
text("PUISSANCE 4",250,180);
textSize(40);
fill(0);
text("Jouer",350,330);
text("Options",335,455);
textSize(20);
}
void options(){
jeton.resize(sX, sY);
background(jeton);
fill(255);
rect(245,122,310,80);
rect(0,620,160,60);
fill(0);
textSize(40);
text("Règles du jeu",275,180);
textSize(35);
text("Retour",20,665);
}