« Utilisateur:Adrien » : différence entre les versions

De Wikilipo
Aller à la navigation Aller à la recherche
Aucun résumé des modifications
Ligne 21 : Ligne 21 :


====Code====
====Code====
Embryon de code pour la grille entière. Reste à rendre autonome chaque sous-grille.
[[Fichier:Source]]
<pre>String ruban ="La ville est un palimpseste.";
String[] ruban_array={ruban};
PFont f;
float x;
int i=0;
int corps=72;
char c='*';
//
Cell[][][] grille; //tableau d'objets-cellules
int nb=11;
int cols=5;
int rows=5;
int larg=854;
int haut=480;
boolean[] motif={true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true};
boolean[] motifA={false,false,true,false,false,false,false,true,false,false,false,true,false,true,false,true,true,true,true,true,true,false,false,false,true};
boolean[] motifB={true,true,true,true,true,true,false,false,false,true,true,true,true,true,true,true,false,false,false,true,true,true,true,true,true};
boolean[] motifC={true,true,true,true,true,true,false,false,false,false,true,false,false,false,false,true,false,false,false,false,true,true,true,true,true};
boolean[] motifE={true,true,true,true,true,true,false,false,false,false,true,true,true,true,true,true,false,false,false,false,true,true,true,true,true};
boolean[] motifF={true,true,true,true,true,true,false,false,false,false,true,true,true,true,true,true,false,false,false,false,true,false,false,false,false};
boolean[] motifI={false,false,true,false,false,false,false,false,false,false,false,false,true,false,false,false,false,true,false,false,false,false,true,false,false};
boolean[] motifL={true,false,false,false,false,true,false,false,false,false,true,false,false,false,false,true,false,false,false,false,true,true,true,true,true};
boolean[] motifM={true,false,false,false,true,true,true,false,true,true,true,false,true,false,true,true,false,false,false,true,true,false,false,false,true,};
boolean[] motifN={true,false,false,false,true,true,true,false,false,true,true,false,true,false,true,true,false,false,true,true,true,false,false,false,true};
boolean[] motifP={true,true,true,true,true,true,false,false,false,true,true,true,true,true,true,true,false,false,false,false,true,false,false,false,false};
boolean[] motifS={true,true,true,true,true,true,false,false,false,false,true,true,true,true,true,false,false,false,false,true,true,true,true,true,true};
boolean[] motifT={true,true,true,true,true,false,false,true,false,false,false,false,true,false,false,false,false,true,false,false,false,false,true,false,false};
boolean[] motifU={true,false,false,false,true,true,false,false,false,true,true,false,false,false,true,true,false,false,false,true,false,true,true,true,false};
boolean[] motifV={true,false,false,false,true,true,false,false,false,true,true,false,false,false,true,false,true,false,true,false,false,false,true,false,false};
boolean[] motifX={true,false,false,false,true,false,true,false,true,false,false,false,true,false,false,false,true,false,true,false,true,false,false,false,true};
//int bloc=0;
//SETUP
boolean[][] ordre ={motifB,motifO};
void setup() {
  f = createFont("Tw Cen MT Condensed Extra Bold",corps);
  x = larg;
  size(larg,haut);
  grille = new Cell[nb][cols][rows];
  for (int h=0; h < nb; h++) {
    for (int i = 0; i < cols; i++) {
      for (int j = 0; j < rows; j++) {
        grille[h][i][j] = new Cell(i*10+25+h*75,j*10,10,10);
      }
    }
  }
}
//DRAW
void draw() {
  background(0); //fond noir
  fill(255);
  textFont(f,16);       
  textAlign(LEFT);
  text(ruban_array[i],x,400);
  x = x - 3;
  float w = textWidth(ruban_array[i]);
  if (x < -w) {
    x = larg;
    i = (i + 1) % ruban_array.length;
  }
  //
  boolean []motifcourant;
  for (int h=0; h < nb; h++) {
    int n=0;
    motifcourant = ordre[h];
    for (int i = 0; i < cols; i++) {
      for (int j = 0; j < rows; j++) {
        //if (bloc<=nb) { h=bloc; } else { bloc=0; }
        if (motif[n]) {
          grille[h][j][i].allumer();       
        }
        else {
          grille[h][j][i].eteindre();
        }
        n++;
      }
    }
  }
}
//CELLULES
class Cell {
  float x,y;
  float w,h;
 
  Cell(float tempX, float tempY, float tempW, float tempH) {
    x = tempX;
    y = tempY;
    w = tempW;
    h = tempH;
  }
 
void allumer() {
  stroke (0); //contour noir
  fill (255); //interieur blanc
  rect(x,y,w,h); //dessine les cellules
  }
 
void eteindre() {
  stroke (0);
  fill (0);
  rect(x,y,w,h);
}
}
//MAJ
void keyPressed() {
  switch (key) {
    case 'a': arrayCopy(motifA,motif);
    break;
    case 'b': arrayCopy(motifB,motif);
    break;
    case 'c': arrayCopy(motifC,motif);
    break;
    case 'e': arrayCopy(motifE,motif);
    break;
    case 'f': arrayCopy(motifF,motif);
    break;
    case 'i': arrayCopy(motifI,motif);
    break;
    case 'l': arrayCopy(motifL,motif);
    break;
    case 'm': arrayCopy(motifM,motif);
    break;
    case 'n': arrayCopy(motifN,motif);
    break;
    case 'p': arrayCopy(motifP,motif);
    break;
    case 's': arrayCopy(motifS,motif);
    break;
    case 't': arrayCopy(motifT,motif);
    break;
    case 'v': arrayCopy(motifV,motif);
    break;
    case 'u': arrayCopy(motifU,motif);
    break;
    case 'x': arrayCopy(motifX,motif);
    break;
  }
  //
  String nouveau=ruban_array[0].replace(key,c);
  ruban_array[0]=nouveau;
  println(ruban_array);
//bloc++;
}
</pre>
===Exemples===
===Exemples===
=====Ruban=====
=====Ruban=====

Version du 19 novembre 2010 à 18:46

Le projet au --Adrien 13 novembre 2010 à 12:53 (UTC)

Projet Lausanne 2011

But du jeu

Scheme.jpg

Algorithme

Pseudo-code

Grille

  1. initialiser la grille (11x5x5 objets-cellules)
  2. charger un mot, le décomposer en caractères
  3. pour chaque caractère, sélectionner le motif correspondant (un motif est un tableau bi-dimensionnel 5x5 comportant les coordonnées (ensemble de paires ordonnées) de chaque cellule à illuminer)
  4. copier le motif dans chaque sous-grille
  5. parcourir chaque sous grille: pour chaque cellule reconnue, attribuer une valeur (i.e. 'true') et incrémenter indice d'usure
  6. parcourir la grille: pour chaque cellule 'true' ayant un indice d'usure inférieur à 11, afficher cette cellule en blanc; sinon, l'afficher en gris (rvb=211,211,211)

Ruban

  1. charger un texte depuis un fichier externe
  2. afficher, faire défiler
  3. biffer (comment?)
  4. pour tout mot biffé: lorsque ce mot est sorti du champ, le comparer au lexique
  5. afficher le mot le plus similaire dans la grille

Code

Fichier:Source

Exemples

Ruban

Grille


Comparaison lexicale