« 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 13 novembre 2010 à 23: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);
}
}
