Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Mensajes - LAIONEL

#1
MUCHACHOS BUENAS NOCHES QUE PENA MOLESTARLOS  ES QUE TENGO UNA DUDA MAS BIEN UN INCONVENIENTE PARA UNA COMPILACION EN PROCESING

SE SUPONE  QUE ME TOCA HACER EL JUEGO DE LA VIDA !  YA ESTA CREADO ! EN SI EL JUEGO ! 
AHORA EL INCONVENIENTE ES EL SIGUIENTE :
AL INCIAR EL ME DEBE  QUE COLORAR UNAS POCISIONES  YA ALEATORIA MENTE COSA QUE NO HE PODIDO LES  AGRADESERIA MUCHISIMO QUE  ME COLABOREN CON ESTE  TEMA  DE   ANTE MANO MUCHISIMAS  GRACIAS

*CODIGO * :

int width = 600; // Ancho
int height = 400; // Alto
int dotsize = 10; // Tamanho de los cuadrados
boolean field[]; // Campo
int dwidth; // Cuadrados por linea
boolean stop = true; // ¿Esta parado?
int fsize; // Tamanho del array de campo

/* Dibuja una cuadrcula */
void gen_background() {
  stroke( 0 );
  for ( int x = 0 ; x < width ; x += dotsize ) {
    line( x, 0, x, height );
  }
  for ( int y = 0 ; y < height ; y += dotsize ) {
    line( 0, y, width, y );
  }
}

/* Prepara el escenario */
void setup() {
  size( width, height );
  dwidth = width / dotsize;
  fsize = (height / dotsize) * dwidth;
  field = new boolean[ ( width * height ) / ( dotsize * dotsize) ];
}

/* Cuenta los "vecinos" */
int count_elements( boolean f[], int p ) {
  int i = 0 ;
  if (p + 1 >= dwidth) {
    if (f[ (p + 1 - dwidth) ]) {
      i++;
    }
  }

  if (p >= dwidth)
    if (f[ (p - dwidth) ]) {
      i++;
    }
  if (p - 1 >= dwidth ) {
    if (f[ (p - 1 - dwidth) ]) {
      i++;
    }
  }
  if (p > 0) {
    if (f[ (p - 1) ]) {
      i++;
    }
  }
  if (p + 1 < fsize) {
    if (f[ (p + 1) ]) {
      i++;
    }
  }
  if (p + 1 < fsize - dwidth ) {
    if (f[ (p + 1 + dwidth) ]) {
      i++;
    }
  }
  if (p - 1 < fsize - dwidth ) {
    if (f[ (p - 1 + dwidth) ]) {
      i++;
    }
  }
  if (p < fsize - dwidth ) {

    if (f[ (p + dwidth) ]) {
      i++;
    }
  }
  return i;
}

/* Obtiene el siguiente array */
void getNextArr( boolean f[], boolean o[] ) {
  int last = ( width * height ) / ( dotsize * dotsize ) ;
  boolean flipFlop = !o[0];
  for ( int i = 0 ; i < last ; i++ ) {
    int v = count_elements(o, i);
    f [ i ] = ((o[ i ] && v > 1 && v < 4) ||
      ( v == 3 ) );
  }
}

/* Muestra el campo */
void show_field( boolean f[] ) {
  fill( 0 );
  int i = 0;
  for( int x = 0 ; x < width ; x += dotsize ) {
    int j = 0;
    for ( int y = 0 ; y < height ; y += dotsize ) {
      if ( f[ ( dwidth * j) + i ] ) {
        rect( x, y, dotsize, dotsize );
      }
      j++;
    }
    i++;
  }
}

/* Funcion por defecto */
void draw() {
  background( 255, 255, 255 );
  if (!stop) {

    boolean old[] = field;
    field = new boolean[ (width * height) / ( dotsize * dotsize) ];
    getNextArr( field, old );
  }
  gen_background();
  show_field( field );
}

/* Activa/Desactiva una casilla con el raton */
void mousePressed() {
  stop = true;
  int pos = ( mouseY / dotsize * dwidth ) + ( mouseX / dotsize );
  field[ pos ] = !field[ pos ];
}

/* Para/Reanuda con el teclado */
void keyPressed() {
  stop = !stop;
}





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.