/* _ | | __| | ___ ___ _ __ ___ / _` |/ _ \ / _ \| '__/ __| | (_| | (_) | (_) | | \__ \ \__,_|\___/ \___/|_| |___/ v 0.7 CC-BY-SA Belgique 2.0 - VANLINDT MARC */ color Confluences = color(6,103,49); color Confluences2 = color(22,125,63); color noir = color(0,0,0); color blanc = color(255,255,255); color Haut = Confluences; color Gauche = color(0,0,255); //color(66,131,255); color Droite = color(255,0,0); PFont PoliceConfluences; PFont PoliceConfluencesGras; PFont PoliceConfluencesItalique; float NombrePortes = 10.0; int Profil = 0; char touches[][] = {{'a','q'},{'z','s'},{'e','d'},{'r','f'},{'t','g'},{'y','h'},{'u','j'},{'i','k'},{'o','l'},{'p','m'},{'=','ù'},{'$','*'}}; int largeur = 980; int hauteur = 900; int decalx = 50; // OBSOLETE - A virer du code! int decaly = 50; // int[][] JimMorrison = {{1},{1,2},{1,2,3},{1,2,3,4},{1,2,3,4,5},{1,2,3,4,5,6},{1,2,3,4,5,6,7},{1,2,3,4,5,6,7,8},{1,2,3,4,5,6,7,8,9},{1,2,3,4,5,6,7,8,9,10},{1,2,3,4,5,6,7,8,9,10,11},{1,2,3,4,5,6,7,8,9,10,11,12},{1,2,3,4,5,6,7,8,9,10,11,12,13},{1,2,3,4,5,6,7,8,9,10,11,12,13,14},{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}}; int[] RayManzarek = {99,99,99,99,99,99,99,99,99,99,99,99}; String[][] reponses = { {"Non","Oui"}, {"Revenir dans le passé","Décider de l'avenir"}, {"Faire faire","Faire"}, {"Pragmatique assis","Rêveur debout"}, {"Seul on va plus vite", "Ensemble, on va plus loin"}, {"Vie hyperactive", "Vie associative"}, {"Bulletin de vote", "Assemblée citoyenne"}, {"Propriété privée", "Bien commun"}, {"Economie financière", "Economie sociale"}, {"Heindiiiividu","Kolegteeffe"} }; PImage fond; Table exportcsv; boolean SauveOK = false; void setup(){ remiseazero(); size(1080,1920,P3D); // Taille de l'écran. P3D important fullScreen(); // En plein écran. Mettre ça en commentaire pour test en fenêtré background(Confluences); // Fond général de couleur noire noStroke(); // important : empèche les bords aux objets frameRate(60); // Pas important smooth(4); // adoucit les polices loop(); // Très important! fond = loadImage("./image.png"); // Fond général de l'écran PoliceConfluences = createFont("swiss2.ttf",128); // police de caractère confluence (swiss1 = gras, swiss3 = italique) PoliceConfluencesGras = createFont("swiss1.ttf",128); // police de caractère confluence (swiss1 = gras, swiss3 = italique) PoliceConfluencesItalique = createFont("swiss3.ttf",128); // police de caractère confluence (swiss1 = gras, swiss3 = italique) exportcsv = loadTable("data/TheDoors.csv","header"); // Fichier d'exportation des tables. Ce fichier doit exister. Il n'y a pas de vérification de sa présence. } void draw(){ image(fond,0,0); creationcouleurs(); affichageportes(); appuitouches(); afficheevolution(); fill(255,255,255,64); rect(50,1230, 980,1920-1230-50); textFont(PoliceConfluencesGras); textSize(25); fill(0,0,0); text("Statistiques :",60,1255); int NombreParticipants=exportcsv.getRowCount(); textFont(PoliceConfluences); textSize(20); fill(0,0,0); text("Nombre de participants : "+NombreParticipants,60,1280); int[] statsportes = {0,0,0,0,0,0,0,0,0,0,0}; for(int i = 0; i <= NombrePortes; i++){ for (TableRow row : exportcsv.findRows(str(i+1), "final")) {statsportes[i]+=1;} textAlign(CENTER); textFont(PoliceConfluencesGras); textSize(15); text("Profil "+(i+1), 100 + (1080-200)/10*i,1860); textAlign(LEFT); } int maxstats = max(statsportes); int[][] statscoord = {{0,0},{0,0}}; int hauteurstats=475; for(int i = 0; i <= NombrePortes; i++){ circle(100 + (1080-200)/10*i, 1800 - hauteurstats/maxstats*statsportes[i], 10); if(i<NombrePortes){ stroke(2); noFill(); bezier( float (100 + (1080-200)/10*(i+1)), float (1800 - hauteurstats/maxstats*statsportes[i+1]), float (100 + (1080-200)/10*(i)), float (1800 - hauteurstats/maxstats*statsportes[i+1]), float (100 + (1080-200)/10*(i+1)), float (1800 - hauteurstats/maxstats*statsportes[i]), float (100 + (1080-200)/10*(i)), float (1800 - hauteurstats/maxstats*statsportes[i])); /* line( 100 + (1080-200)/10*i, 1800 - hauteurstats/maxstats*statsportes[i], 100 + (1080-200)/10*(i+1), 1800 - hauteurstats/maxstats*statsportes[(i+1)]); line( float (100 + (1080-200)/10*(i+1)), float (1800 - hauteurstats/maxstats*statsportes[i+1]), float (100 + (1080-200)/10*(i)), float (1800 - hauteurstats/maxstats*statsportes[i+1]) );*/ } textAlign(CENTER); textFont(PoliceConfluencesItalique); textSize(15); text(statsportes[i], 100 + (1080-200)/10*i,1800 - hauteurstats/maxstats*statsportes[i]-10); textAlign(LEFT); fill(0,0,0,255); } noStroke(); int Somme = 0; for(int i=0;i<=NombrePortes;i++){ if(RayManzarek[i]!=99){ Somme += (int(RayManzarek[i])*int(pow(2,NombrePortes-i-1))); } } Profil = 0; for (int z = 0; z < NombrePortes; z++){ Profil +=RayManzarek[z]; } if(Profil<=NombrePortes){ text(Profil+1,largeur+200, (40+hauteur/NombrePortes)); if(SauveOK == false){ TableRow newRow = exportcsv.addRow(); newRow.setInt("id", exportcsv.getRowCount() - 1); newRow.setInt("chemin", Somme+1); newRow.setInt("final", Profil+1); println(Somme); saveTable(exportcsv, "data/TheDoors.csv"); SauveOK=true; } int NombreProfil=0; for (TableRow row : exportcsv.findRows(str(Profil+1), "final")) { NombreProfil+=1; } int NombreChemin=0; for (TableRow row : exportcsv.findRows(str(Somme+1), "chemin")) { NombreChemin+=1; } int base=hauteur+100; int hauteur2=180; fill(Confluences2); rect(50,base,980,hauteur2); fill(Confluences); rect(51,base+1,978,hauteur2-2); fill(Confluences2); rect(52,base+2,976,hauteur2-4); textFont(PoliceConfluencesGras); fill(blanc); textSize(40); text("Profil n°"+(Profil+1)+" atteint par le chemin n°"+(Somme+1), 65,base+50); textFont(PoliceConfluences); textSize(30); textFont(PoliceConfluencesItalique); textSize(20); String NPText =""; if(NombreProfil==1){NPText="Vous êtes le premier à être arrivé à ce profil et ";}else{NPText="Vous êtes "+NombreProfil+" à être arrivés à ce profil et ";} String NCText =""; if(NombreChemin==1){NCText="le premier à avoir emprunté ce chemin.";}else{NCText=NombreChemin+" à avoir empruntés ce chemin.";} text(NPText+ NCText,65,base+150); textFont(PoliceConfluences); textSize(30); // text(Profils[Profil], 1010,195); if(Profil==0){ text("Vous n'avez atteint aucun cap sur les 10.", 65,base+110); }else{ String tmp = "cap"; if(Profil == 0 || Profil ==1){tmp="cap";}else{tmp="caps";} text("Vous avez atteint "+Profil+" "+tmp+" sur les 10.", 65,base+110);} } } void creationcouleurs(){ for (int x=0; x<=NombrePortes; x+=1){ color c=lerpColor(Haut, Gauche, x*1.0/NombrePortes); color d=lerpColor(Haut, Droite, x*1.0/NombrePortes); JimMorrison[x][0]=c; JimMorrison[x][x]=d; } for (int y=1;y<=NombrePortes;y+=1){ for (int x=0;x<=y;x+=1){ color c=lerpColor(JimMorrison[y][0], JimMorrison[y][y], x*1.0/(y)); JimMorrison[y][x]=c; } } JimMorrison[0][0]=Haut; } void affichageportes(){ for (int y=0;y<=NombrePortes;y+=1){ for (int x=0;x<=y;x+=1){ int SommeRM = 0; for (int z = 0; z < y; z++) { SommeRM +=RayManzarek[z]; } fill(JimMorrison[y][x]); rect(decalx +(x*largeur/NombrePortes)*(NombrePortes/(y+1)), decaly+hauteur/(NombrePortes+1)*(y), largeur/NombrePortes*(NombrePortes/(y+1)),hauteur/(NombrePortes+1)); if(x!=SommeRM){ fill(0,0,0,128); rect(decalx +(x*largeur/NombrePortes)*(NombrePortes/(y+1)), decaly+hauteur/(NombrePortes+1)*(y), largeur/NombrePortes*(NombrePortes/(y+1)),hauteur/(NombrePortes+1)); } } } } void remiseazero(){ for(int i=0;i<=NombrePortes;i++){ RayManzarek[i] = 99; } SauveOK = false; } void appuitouches(){ if (keyPressed) { for (int k=0;k<=NombrePortes;k++){ if (key == touches[k][0]) {RayManzarek[k]=0;} if (key == touches[k][1]) {RayManzarek[k]=1;} } if(key=='w'){ remiseazero(); } } } void afficheevolution(){ for (int k=0;k<=9;k++){ fill(blanc); textFont(PoliceConfluences); textSize(20); fill(255,255,255,96); String tmp = ""; if(k==0){tmp="Salut, ça va ? ";} else {tmp="";}; if(RayManzarek[k]==99) {fill(255,255,255,96);text(tmp+reponses[k][0]+" / "+reponses[k][1],decalx +20, 30+decaly + ((hauteur/(NombrePortes+1))*1+(hauteur/(NombrePortes+1))*(k)));} if(RayManzarek[k]==0) {fill(255,128,128,96);text(tmp+reponses[k][0]+" / "+reponses[k][1],decalx +20, 30+decaly + ((hauteur/(NombrePortes+1))*1+(hauteur/(NombrePortes+1))*(k))); fill(128,128,255); text(tmp+reponses[k][0],decalx +20, 30+decaly + ((hauteur/(NombrePortes+1))*1+(hauteur/(NombrePortes+1))*(k))); } if(RayManzarek[k]==1) {fill(128,128,255,96); text(tmp+reponses[k][1]+" / "+reponses[k][0],decalx +20, 30+decaly + ((hauteur/(NombrePortes+1))*1+(hauteur/(NombrePortes+1))*(k))); fill(255,128,128); text(tmp+reponses[k][1],decalx +20, 30+decaly + ((hauteur/(NombrePortes+1))*1+(hauteur/(NombrePortes+1))*(k))); } } }
/* _ | | __| | ___ ___ _ __ ___ / _` |/ _ \ / _ \| '__/ __| | (_| | (_) | (_) | | \__ | \__,_|\___/ \___/|_| |___/ (ENTRY) \v 0.1 CC-BY-SA Belgique 2.0 - VANLINDT MARC */ color Confluences = color(6,103,49); color Confluences2 = color(22,125,63); color couleurnom = color(Confluences); color couleurmail = color(Confluences); color couleurcodepostal = color(Confluences); PFont PoliceConfluences; PFont PoliceConfluencesGras; PFont PoliceConfluencesItalique; PImage fond; PImage fond2; Table exportcsv; boolean SauveOK = false; boolean SauveOK2 = false; int delai=300; char[][][] touches1 = { { {'1','1'},{'2','2'},{'3','3'},{'4','4'},{'5','5'},{'6','6'},{'7','7'},{'8','8'},{'9','9'},{'0','0'} }, { {'a','A'},{'z','Z'},{'e','E'},{'r','R'},{'t','T'},{'y','Y'},{'u','U'},{'i','I'},{'o','O'},{'p','P'} }, { {'q','Q'},{'s','S'},{'d','D'},{'f','F'},{'g','G'},{'h','H'},{'j','J'},{'k','K'},{'l','L'},{'m','M'} }, { {'w','W'},{'x','X'},{'c','C'},{'v','V'},{'b','B'},{'n','N'},{'.',','},{'-','_'},{':','='},{'@','@'} } }; String Nom1 =""; String Mail =""; String CodePostal = ""; String nom="nom"; int Shift = 0; int Shift2 = 1; int compteur=0; void setup(){ size(1920,1080,P3D); // Taille &de l'écran. P3D important fullScreen(); // En plein écran. Mettre ça en commentaire pour test en fenêtré background(Confluences); // Fond général de couleur noire noStroke(); // important : empèche les bords aux objets frameRate(60); // Pas important smooth(4); // adoucit les polices loop(); // Très important! fond = loadImage("./imageentry.png"); // Fond général de l'écran fond2 = loadImage("./imageentry2.png"); // Fond général de l'écran PoliceConfluences = createFont("swiss2.ttf",128); // police de caractère confluence (swiss1 = gras, swiss3 = italique) PoliceConfluencesGras = createFont("swiss1.ttf",128); // police de caractère confluence (swiss1 = gras, swiss3 = italique) PoliceConfluencesItalique = createFont("swiss3.ttf",128); // police de caractère confluence (swiss1 = gras, swiss3 = italique) exportcsv = loadTable("data/TheDoorsEntree.csv","header"); // Fichier d'exportation des tables. Ce fichier doit exister. Il n'y a pas de vérification de sa présence. } void draw(){ image(fond,0,0); if(SauveOK==false){ PasOk(); } else { ok(); } } void PasOk() { if(nom=="nom") { couleurnom=color(Confluences); couleurmail=color(255,255,255,32); couleurcodepostal=color(255,255,255,32); } if(nom=="mail") { couleurmail=color(Confluences); couleurnom=color(255,255,255,32); couleurcodepostal=color(255,255,255,32); } if(nom=="codepostal") { couleurcodepostal=color(Confluences); couleurnom=color(255,255,255,32); couleurmail=color(255,255,255,32); } // zone nom fill (255,255,255,64); rect (50,50,600,60,10); fill(couleurnom); textAlign(LEFT); textSize(35); text("Prénom : "+Nom1,50+15,50+35+12); //zone remise à zéro fill (255,255,255,64); rect (660,50,220,60,10); text("Remise à zéro",660+15,50+35+12); //Zone Mail fill (255,255,255,64); rect (50,120,600,60,10); fill (couleurmail); textAlign(LEFT); textSize(35); text("Mail : "+Mail,50+15,50+35+12+70); //Zone code postal fill (255,255,255,64); rect (50,190,600,60,10); fill (couleurcodepostal); textAlign(LEFT); textSize(35); text("Code Postal : "+CodePostal,50+15,50+35+12+140); //zone "OK" fill (255,255,255,64); rect (50,260,600,60,10); fill (Confluences); textAlign(CENTER); textSize(35); text("OK",325,260+35+12); if ( mousePressed == true && mouseX>660 && mouseX<880 && mouseY>50 && mouseY<110) { remiseazero(); println("toto"); delay(delai); } if ( mousePressed == true && mouseX>50 && mouseX<650 && mouseY>50 && mouseY<110) { nom="nom"; delay(delai); } if ( mousePressed == true && mouseX>50 && mouseX<650 && mouseY>120 && mouseY<180) { nom="mail"; delay(delai); } if ( mousePressed == true && mouseX>50 && mouseX<650 && mouseY>170 && mouseY<230) { nom="codepostal"; delay(delai); } if ( mousePressed == true && mouseX>50 && mouseX<650 && mouseY>240 && mouseY<300) { SauveOK=true; delay(delai); } // affichages des touches for(int i=0;i<=3;i++){ for(int j=0;j<=9;j++){ stroke(Confluences2); fill(255,255,255,64); rect( 50+(j*((width-100)/10)), (height/2)+(i*height/11), (width-100)/11, height/12, 10); textAlign(CENTER); fill(Confluences); textFont(PoliceConfluencesGras); textSize(50); text( touches1[i][j][Shift], 50+(j*((width-100)/10))+((width-100)/10)/3, ((height/2)+(i*height/11))+height/11-35 ); textFont(PoliceConfluencesItalique); fill(Confluences2); textSize(30); text( touches1[i][j][Shift]+" "+touches1[i][j][Shift2], 50+(j*((width-100)/10))+((width-100)/10)/3*2+10, ((height/2)+(i*height/11))+height/11-20 ); if ( mousePressed == true && mouseX>(50+(j*((width-100)/10))) && mouseX<(50+((j+1)*((width-100)/10))) && mouseY>((height/2)+(i*height/11)) && mouseY<((height/2)+((i+1)*height/11))) { if(nom=="nom"){ Nom1=Nom1+=touches1[i][j][Shift]; delay(delai); } if(nom=="mail"){ Mail=Mail+=touches1[i][j][Shift]; delay(delai); } if(nom=="codepostal"){ CodePostal=CodePostal+=touches1[i][j][Shift]; delay(delai); } } } } //touche shift fill(255,255,255,64); rect(50, (height/2)+(4*height/11), (width-100)/11, height/12, 10); fill(Confluences); text("Maj", 50+((width-100)/11)/2, (height/2)+(4.6*height/11) ); if( mousePressed == true && mouseX>50 && mouseX<50+((width-100)/11) && mouseY>(height/2)+(4*height/11) && mouseY<(height/2)+(5*height/11)){ if(Shift==0){ Shift=1; Shift2=0; } else{ Shift=0; Shift2=1; } delay(delai); } } void remiseazero(){ Nom1 =""; Mail = ""; nom="nom"; CodePostal = ""; } void ok() { background(fond2); if(SauveOK2 == false){ TableRow newRow = exportcsv.addRow(); newRow.setInt("id", exportcsv.getRowCount() -1); newRow.setString("nom", Nom1); newRow.setString("mail", Mail); newRow.setString("codepostal", CodePostal); saveTable(exportcsv, "data/TheDoorsEntree.csv"); println(Nom1+" "+Mail+" "+CodePostal); SauveOK2 = true; } } // int NombreParticipants=exportcsv.getRowCount();