<commit_before>int i,j,k,iv,ix,bo,n,vel;
Tablero t;

void setup() {  
  n=25;
  vel=3;
  size(500,500);
  t = new Tablero(n);
}

void draw() {
  background(255);
  /*Las lineas del tablero*/
  for(i=0;i<=n;i++){
    line(50,50+400*i/n,450,50+400*i/n);
    line(50+400*i/n,50,50+400*i/n,450);   
  }
  t.move_all();
}

class Tablero{
  Robot[] robots;
  color c(int i){
    return color(65*i*7 % 255,65*i*5%255,65*11*7%255); 
  }
  
  void move_all(){
    for(k=0;k<n;k++){buena_opcion(robots[k]).display();}
  }

 Robot buena_opcion(Robot r){
   if(r.y0!=(n-1)){
     bo=cuadro_vacio(r.x0);
     if(r.x0 != bo){
       if(r.x0 > bo  && esta_vacio(r,r.x0-1 , r.y0)){
         r.izquierda();
       }else if(r.x0 < bo  && esta_vacio(r, r.x0+1,r.y0)){
         r.derecha();
       }
     }else if( r.y0<n-1 && esta_vacio(r,r.x0,r.y0+1)){
         r.arriba();
     }
   }
   return r;
 }

 int cuadro_vacio(int col){
   /* Si esta vacio en la columna damos esa*/
   if (esta_vacio(null,col,n-1)) return col;
   /* En otro caso damos la primer columna vacia*/
   for(ix=0;ix<n;ix++){
     if (esta_vacio(null,ix,n-1)) return ix;
   }
   return -1;
 }
 
  boolean esta_vacio(Robot r, int x,int y){
    //return true;
    for(iv=0;iv<n;iv++){
      if(robots[iv]!=null && robots[iv]!=r){
        if((robots[iv].x0==x && robots[iv].y0==y) || 
           (robots[iv].x1==x && robots[iv].y1==y)){
          return false;
        }
      } 
    }
    return true;
  }

  int[] vacio_aleatorio(){
    boolean vacio=false;
    int[] coo=new int[2];
    while(!vacio){
      coo[0]=int(random(n));  
      coo[1]=int(random(n));
      vacio=esta_vacio(null,coo[0],coo[1]);
    }
    return coo;
  }
  
  Tablero(int n){
    robots=new Robot[n];
    for(j=0;j<n;j++){
      int[] coo=vacio_aleatorio();
      robots[j] = new Robot(c(j),coo[0],coo[1]); 
    }
  }
}<commit_msg>Movimiento aleatorio del robot<commit_after>int i,j,k,iv,ix,bo,n,vel,direccion;
boolean movimiento_aleatorio,asignado;
Tablero t;

void setup() {  
  n=25;
  vel=3;
  size(500,500);
  t = new Tablero(n);
  movimiento_aleatorio=true;
}

void draw() {
  background(255);
  /*Las lineas del tablero*/
  for(i=0;i<=n;i++){
    line(50,50+400*i/n,450,50+400*i/n);
    line(50+400*i/n,50,50+400*i/n,450);   
  }
  t.move_all();
}

class Tablero{
  Robot[] robots;
  color c(int i){
    return color(65*i*7 % 255,65*i*5%255,65*11*7%255); 
  }
  
  void move_all(){
    for(k=0;k<n;k++){
      if(movimiento_aleatorio){
      opcion_aleatoria(robots[k]).display();
      }else{
      buena_opcion(robots[k]).display();
      }
    }
  }

 Robot opcion_aleatoria(Robot r){
   if(r.y0!=(n-1)){
     direccion=int(random(3));
     if(direccion==0  && esta_vacio(r,r.x0-1 , r.y0)){
       r.izquierda();
     }else if(direccion==1  && esta_vacio(r, r.x0+1,r.y0)){
       r.derecha();
     }else if( direccion==2 && esta_vacio(r,r.x0,r.y0+1)){
       r.arriba();
     }
   }
   return r;
 }

 Robot buena_opcion(Robot r){
   if(r.y0!=(n-1)){
     bo=cuadro_vacio(r.x0);
     if(r.x0 != bo){
       if(r.x0 > bo  && esta_vacio(r,r.x0-1 , r.y0)){
         r.izquierda();
       }else if(r.x0 < bo  && esta_vacio(r, r.x0+1,r.y0)){
         r.derecha();
       }
     }else if( r.y0<n-1 && esta_vacio(r,r.x0,r.y0+1)){
         r.arriba();
     }
   }
   return r;
 }

 int cuadro_vacio(int col){
   /* Si esta vacio en la columna damos esa*/
   if (esta_vacio(null,col,n-1)) return col;
   /* En otro caso damos la primer columna vacia*/
   for(ix=0;ix<n;ix++){
     if (esta_vacio(null,ix,n-1)) return ix;
   }
   return -1;
 }
 
  boolean esta_vacio(Robot r, int x,int y){
    //return true;
    if (0>x || x>=n || 0>y || y>=n) return false; 
    for(iv=0;iv<n;iv++){
      if(robots[iv]!=null && robots[iv]!=r){
        if((robots[iv].x0==x && robots[iv].y0==y) || 
           (robots[iv].x1==x && robots[iv].y1==y)){
          return false;
        }
      } 
    }
    return true;
  }

  int[] vacio_aleatorio(){
    boolean vacio=false;
    int[] coo=new int[2];
    while(!vacio){
      coo[0]=int(random(n));  
      coo[1]=int(random(n));
      vacio=esta_vacio(null,coo[0],coo[1]);
    }
    return coo;
  }
  
  Tablero(int n){
    robots=new Robot[n];
    for(j=0;j<n;j++){
      int[] coo=vacio_aleatorio();
      robots[j] = new Robot(c(j),coo[0],coo[1]); 
    }
  }
}
{'fraction_non_alphanumeric': 0.2112318003235498, 'fraction_numerical': 0.04922579154148371, 'mean_word_length': 2.573905862923204, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '961956', 'n_tokens_mistral': 2127, 'n_tokens_neox': 2012, 'n_words': 304}