Utilisateur:Adrien
Aller à la navigation
Aller à la recherche
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);
}
}
