random _x,_y y único

| en flash

en un post en FlashLA se preguntaba como hacer para duplicar clips en un cuadro, pero que estos no se encimaran.

para esto opté por hacer un array bidimensional, donde fuera "apuntando" los _x, _y que ya habían sido tomados.
al final quedó algo como esto.


//devuelve el array bidimensional, con false como valores.
hacerArray = function (){
  var a = new Array();
  for( var n = 0;n < 10; n ++){
    a[n] = new Array ()
    for(var j = 0;j < 10; j ++){
      a[n][j] = false;
    }
  }
  return a;
}
//encuentra x,y (recursiva si se ocupa )
function findxy (){
  var temp = new Object()
  temp.x = random(10);
  temp.y = random(10)
  if( arreglo[temp.x ][temp.y] ){
    trace("no found " + temp.x + " " + temp.y);    
    temp = findxy()
  }
  arreglo[temp.x][temp.y] = true;
  trace("found hole " + temp.x + " " + temp.y);
  return temp
}
//dibuja los clips.
drawClips = function (num){
  for ( var n = 0; n < num; n ++){
    c = attachMovie("clip","clip" + n ,n +1,{_alpha : 20 + random(80)})
    var obj = findxy()
    c._x = 20 + (obj.x * 20)
    c._y = 20 + (obj.y * 20)
  }
}
//elimina los clips.
removeClips = function (num){
  while (num --){
    this["clip" + num ].removeMovieClip()
  }
}
//funcion principal.
function redraw ( num ){
  removeClips(currentClips);
  currentClips = num;
  delete arreglo;
  arreglo = hacerArray ();
  drawClips(num)
}
//inicial.
redraw(random(99) + 1)
stop();

para bajar el fla, click aquí