« Utilisateur:Adrien » : différence entre les versions
Aller à la navigation
Aller à la recherche
(→Code) |
|||
Ligne 6 : | Ligne 6 : | ||
====Pseudo-code==== | ====Pseudo-code==== | ||
====Code==== | ====Code==== | ||
< | <pre> | ||
Cell[][][] grille; //tableau d'objets tri-dimensionnel (3x11x8) | |||
int num=3; | |||
int cols=11; | |||
int rows=8; | |||
int w=854; | |||
int h=480; | |||
char c; //caractère saisi | |||
int charge; //indice de couleur | |||
void setup() { | |||
size(w,h); | |||
grille = new Cell[num][cols][rows]; | |||
for (int h = 0; h < num; h++) { | |||
for (int i = 0; i < cols; i++) { | |||
for (int j = 0; j < rows; j++) { | |||
// Initialize each object | |||
grille[h][i][j] = new Cell(h*w/h+20,i*w/h+20,j*w/h+20,20/*,20,c*/); | |||
} | |||
} | |||
} | |||
} | |||
void draw() { | |||
background(0); //fond noir | |||
// The counter variables i and j are also the column and row numbers and | |||
// are used as arguments to the constructor for each object in the grid. | |||
for (int h = 0; h < num; h++) { | |||
for (int i = 0; i < cols; i++) { | |||
for (int j = 0; j < rows; j++) { | |||
grille[h][i][j].afficher(); | |||
} | |||
} | |||
} | |||
} | |||
class Cell { //classe des cellules | |||
float x,y; | |||
float w,h; | |||
Cell(float tempX, float tempY, float tempW, float tempH/*, int tempC*/) { | |||
x = tempX; | |||
y = tempY; | |||
w = tempW; | |||
h = tempH; | |||
/*c = tempC;*/ | |||
} | |||
void afficher() { | |||
stroke(0); //bordures noires | |||
for (int a = 0; a<motif.length; a++) { | |||
//?// | |||
case 0: | |||
fill(0); //intérieur noir | |||
break; | |||
case 1: | |||
fill(211); //intérieur gris | |||
break; | |||
case 2: | |||
fill (255); //intérieur blanc | |||
break; | |||
} | |||
rect(x,y,w,h); //dessine les cellules | |||
} | |||
} | |||
char caract(char c) { //FONCTION vérification de la saisie | |||
if (keyPressed) { | |||
c=key; | |||
} | |||
return c; | |||
} | |||
double[] motif(char c) { //FONCTION initialisation du motif de caractère | |||
switch (c) { //3x8cases -- à partir du 'o' | |||
case'a': motif[]={2.3,0.4,1.4,2.4,0.5,2.5,0.6,2.6,0.7,1.7,2.7}; | |||
break; | |||
case'b': motif[]={0.0,0.1,0.2,0.3,0.4,1.4,2.4,0.5,2.5,0.6,2.6,0.7,1.7,2.7}; | |||
break; | |||
case'c': motif[]={0.4,1.4,2.4,0.5,0.6,0.7,1.7,2.7}; | |||
break; | |||
case'd': motif[]={2.0,2.1,2.2,2.3,0.4,1.4,2.4,0.5,2.5,0.6,2.6,0.7,1.7,2.7}; | |||
break; | |||
case'e': motif[]={0.3,1.3,2.3,0.4,0.5,1.5,2.5,0.6,0.7,1.7,2.7}; | |||
break; | |||
case'f': motif[]={0.0,1.0,2.0,0.1,0.2,0.3,1.3,0.4,1.4,2.4,0.5,0.6,0.7,1.7,2.7}; | |||
break; | |||
case'g': | |||
break; | |||
case'h': | |||
break; | |||
case'i': motif[]={1.2,1.4,1.5,1.6,1.7}; | |||
break; | |||
case'j': motif[]={1.2,1.4,1.5,1.6,1.7,1.8,1.9}; | |||
break; | |||
case'k': | |||
break; | |||
case'l': motif[]={1.2,1.3,1.4,1.5,1.6,1.7}; | |||
break; | |||
case'm': motif[]={0.4,1.4,2.4,0.5,1.5,2.5,0.6,2.6,0.7,2.7}; | |||
break; | |||
case'n': motif[]={0.4,1.4,2.4,0.5,2.5,0.6,2.6,0.7,2.7}; | |||
break; | |||
case'o': motif[]={0.4,1.4,2.4,0.5,2.5,0.6,2.6,0.7,1.7,2.7}; | |||
break; | |||
case'p': motif[]={0.4,1.4,2.4,0.5,2.5,0.6,2.6,0.7,1.7,2.7,0.8,0.9,0.10}; | |||
break; | |||
case'q': motif[]={0.4,1.4,2.4,0.5,2.5,0.6,2.6,0.7,1.7,2.7,2.8,2.9,2.10}; | |||
break; | |||
case'r': motif[]={0.4,1.4,2.4,0.5,0.6,0.7}; | |||
break; | |||
case's': motif[]={0.4,1.4,2.4,0.5,1.5,2.5,2.6,0.7,1.7,2.7}; | |||
break; | |||
case't': motif[]={0.0,0.1,0.2,0.3,0.4,1.4,2.4,0.5,0.6,0.7,1.7,2.7}; | |||
break; | |||
case'u': motif[]={0,.4,2.4,0.5,2.5,0.6,2.6,0.7,1.7,2.7}; | |||
break; | |||
case'v': motif[]={0.4,2.4,0.5,2.5,0.6,2.6,1.7}; | |||
break; | |||
case'w': | |||
break; | |||
case'x': | |||
break; | |||
case'y': | |||
break; | |||
case'z': | |||
} | |||
return motif; | |||
} | |||
</pre> | |||
===Exemples=== | ===Exemples=== | ||
=====Ruban===== | =====Ruban===== |
Version du 14 novembre 2010 à 01:47
Le projet au --Adrien 13 novembre 2010 à 12:53 (UTC)
Projet Lausanne 2011
But du jeu
Algorithme
Pseudo-code
Code
Cell[][][] grille; //tableau d'objets tri-dimensionnel (3x11x8) int num=3; int cols=11; int rows=8; int w=854; int h=480; char c; //caractère saisi int charge; //indice de couleur void setup() { size(w,h); grille = new Cell[num][cols][rows]; for (int h = 0; h < num; h++) { for (int i = 0; i < cols; i++) { for (int j = 0; j < rows; j++) { // Initialize each object grille[h][i][j] = new Cell(h*w/h+20,i*w/h+20,j*w/h+20,20/*,20,c*/); } } } } void draw() { background(0); //fond noir // The counter variables i and j are also the column and row numbers and // are used as arguments to the constructor for each object in the grid. for (int h = 0; h < num; h++) { for (int i = 0; i < cols; i++) { for (int j = 0; j < rows; j++) { grille[h][i][j].afficher(); } } } } class Cell { //classe des cellules float x,y; float w,h; Cell(float tempX, float tempY, float tempW, float tempH/*, int tempC*/) { x = tempX; y = tempY; w = tempW; h = tempH; /*c = tempC;*/ } void afficher() { stroke(0); //bordures noires for (int a = 0; a<motif.length; a++) { //?// case 0: fill(0); //intérieur noir break; case 1: fill(211); //intérieur gris break; case 2: fill (255); //intérieur blanc break; } rect(x,y,w,h); //dessine les cellules } } char caract(char c) { //FONCTION vérification de la saisie if (keyPressed) { c=key; } return c; } double[] motif(char c) { //FONCTION initialisation du motif de caractère switch (c) { //3x8cases -- à partir du 'o' case'a': motif[]={2.3,0.4,1.4,2.4,0.5,2.5,0.6,2.6,0.7,1.7,2.7}; break; case'b': motif[]={0.0,0.1,0.2,0.3,0.4,1.4,2.4,0.5,2.5,0.6,2.6,0.7,1.7,2.7}; break; case'c': motif[]={0.4,1.4,2.4,0.5,0.6,0.7,1.7,2.7}; break; case'd': motif[]={2.0,2.1,2.2,2.3,0.4,1.4,2.4,0.5,2.5,0.6,2.6,0.7,1.7,2.7}; break; case'e': motif[]={0.3,1.3,2.3,0.4,0.5,1.5,2.5,0.6,0.7,1.7,2.7}; break; case'f': motif[]={0.0,1.0,2.0,0.1,0.2,0.3,1.3,0.4,1.4,2.4,0.5,0.6,0.7,1.7,2.7}; break; case'g': break; case'h': break; case'i': motif[]={1.2,1.4,1.5,1.6,1.7}; break; case'j': motif[]={1.2,1.4,1.5,1.6,1.7,1.8,1.9}; break; case'k': break; case'l': motif[]={1.2,1.3,1.4,1.5,1.6,1.7}; break; case'm': motif[]={0.4,1.4,2.4,0.5,1.5,2.5,0.6,2.6,0.7,2.7}; break; case'n': motif[]={0.4,1.4,2.4,0.5,2.5,0.6,2.6,0.7,2.7}; break; case'o': motif[]={0.4,1.4,2.4,0.5,2.5,0.6,2.6,0.7,1.7,2.7}; break; case'p': motif[]={0.4,1.4,2.4,0.5,2.5,0.6,2.6,0.7,1.7,2.7,0.8,0.9,0.10}; break; case'q': motif[]={0.4,1.4,2.4,0.5,2.5,0.6,2.6,0.7,1.7,2.7,2.8,2.9,2.10}; break; case'r': motif[]={0.4,1.4,2.4,0.5,0.6,0.7}; break; case's': motif[]={0.4,1.4,2.4,0.5,1.5,2.5,2.6,0.7,1.7,2.7}; break; case't': motif[]={0.0,0.1,0.2,0.3,0.4,1.4,2.4,0.5,0.6,0.7,1.7,2.7}; break; case'u': motif[]={0,.4,2.4,0.5,2.5,0.6,2.6,0.7,1.7,2.7}; break; case'v': motif[]={0.4,2.4,0.5,2.5,0.6,2.6,1.7}; break; case'w': break; case'x': break; case'y': break; case'z': } return motif; }
Exemples
Ruban
// An array of news headlines String[] headlines = { "Processing downloads break downloading record.", "New study shows computer programming lowers cholesterol.", }; PFont f; // Global font variable float x; // horizontal location of headline int index = 0; void setup() { size(400,200); f = createFont("Arial",16,true); // Initialize headline offscreen to the right x = width; } void draw() { background(255); fill(0); // Display headline at x location textFont(f,16); textAlign(LEFT); text(headlines[index],x,180); // Decrement x x = x - 3; // If x is less than the negative width, // then it is off the screen float w = textWidth(headlines[index]); if (x < -w) { x = width; index = (index + 1) % headlines.length; } }
Grille
// 2D Array of objects Cell[][] grid; // Number of columns and rows in the grid int cols = 10; int rows = 10; void setup() { size(200,200); grid = new Cell[cols][rows]; for (int i = 0; i < cols; i++) { for (int j = 0; j < rows; j++) { // Initialize each object grid[i][j] = new Cell(i*20,j*20,20,20,i+j); } } } void draw() { background(0); // The counter variables i and j are also the column and row numbers and // are used as arguments to the constructor for each object in the grid. for (int i = 0; i < cols; i++) { for (int j = 0; j < rows; j++) { // Oscillate and display each object grid[i][j].oscillate(); grid[i][j].display(); } } } // A Cell object class Cell { // A cell object knows about its location in the grid as well as its size with the variables x,y,w,h. float x,y; // x,y location float w,h; // width and height float angle; // angle for oscillating brightness // Cell Constructor Cell(float tempX, float tempY, float tempW, float tempH, float tempAngle) { x = tempX; y = tempY; w = tempW; h = tempH; angle = tempAngle; } // Oscillation means increase angle void oscillate() { angle += 0.02; } void display() { stroke(255); // Color calculated using sine wave fill(127+127*sin(angle)); rect(x,y,w,h); } }