Comunidad de diseño web y desarrollo en internet online

ADECUAR ESTA SOPA DE LETRAS

Citar            
MensajeEscrito el 17 Mar 2009 09:03 pm
Hola a todos, hace un tiempo un ingeniero me colaboró con la realizacion de esta sopa de letras, y en este momento estoy necesitando adecuarla cambiando algunas palabras y la posicion; el caso es que no logro saber como hacerlo, creo que es en la parte que señalo en rojo pero no entiendo a que corresponde cada numero, si alguien me puede dar un poco de claridad le agradezco mucho.

Código :

var p:Boolean = false;
var t:Number = 0;
function dibujaTablero(mc:MovieClip, tam:Number, es:Array):MovieClip{
   mc.createEmptyMovieClip("sopa",this.getNextHighestDepth());
   var str:String = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ";
   var letras:Array = str.split("");
   var casillas:Array = [];
   for(var i:Number = 0; i< es.length; i++){
   var tmp:Array = [];
      for(var j:Number = 0; j< es[i].length ; j++){
         tmp[j]=  sopa.attachMovie("casilla","c_"+i+"_"+j, sopa.getNextHighestDepth());
         tmp[j].l_txt.text = (es[i][j]!="")?es[i][j].toUpperCase():letras[random(letras.length)];
         tmp[j]._width = tam;
         tmp[j]._height = tmp[j]._width;
         tmp[j]._x = (j!=0)? tmp[j-1]._x+tmp[j-1]._width : 0;
         tmp[j]._y = (i!=0)? casillas[i-1][j]._y+casillas[i-1][j]._height : 0;
         tmp[j].mascara._visible = false;
         tmp[j].sel = false;
         tmp[j].hitArea = tmp[j];//
         tmp[j].onMouseDown = seleccionar;
         tmp[j].onRollOver = iluminar;
      }
      casillas[i] = tmp;
   }
   return sopa;
}
function seleccionar(){
   if(this.hitTest(_root._xmouse,_root._ymouse , true)){
      //this.mascara._visible = !this.sel;
      //this.sel = (this.sel)?false:true;
      cambEstado(this,!this.sel);
   }
}
function iluminar(){
   if(this.hitTest(_root._xmouse,_root._ymouse , true)){
      this._alpha = (this.sel)?this._alpha:80;
   }
   this.onRollOut = function(){
      this._alpha = (this.sel)?this._alpha:100;
   }
}
function cambEstado(mc:MovieClip, e:Boolean){
   mc.mascara._visible = e;
   mc.sel = e;
}
function alinear(w:Number,h:Number,mc:MovieClip, pos:String):Void{
   switch(pos){
      case "left":
         mc._x = 0;
         break;
      case "right":
         mc._x = w - mc._width;
         break;
      case "center":
         mc._x = (w - mc._width) / 2;
         break;
      case "top":
         mc._y = 0;
         break;
      case "middle":
         mc._y = (h - mc._height) / 2;
         break;
      case "bottom":
         mc._y = h- mc._height;
         break;
   }
}
function crearEsquema(pos:Array,pal:Array,w:Number , h:Number):Array{
   var res:Array = new Array(h);
   for(var i:Number=0; i<res.length ; i++){
      res[i] = new Array(w);
   }
   for(var i:Number=0 ; i<pal.length ; i++){
      tmp = pal[i].split("");
      for(var k:Number = 0; k<tmp.length ;k++){;
         if(pos[i][0]==pos[i][2]){
            if(pos[i][1]>pos[i][3]){
               res[pos[i][1]-k][pos[i][0]] = tmp[k];               
            } else {
               res[pos[i][1]+k][pos[i][0]] = tmp[k];
            }
         } else if (pos[i][1]==pos[i][3]){
            if(pos[i][0]>pos[i][2]){
               res[pos[i][1]][pos[i][0]-k] = tmp[k];
            } else{
               res[pos[i][1]][pos[i][0]+k] = tmp[k];
            }
         } else{
            res[pos[i][1]+k][pos[i][0]+k] = tmp[k];
         }
      }
   }
   for(var i:Number=0 ; i< res.length ; i++){
      for(var j:Number = 0; j<res[i].length ; j++){
         res[i][j] = (res[i][j]==undefined || res[i][j]==null)?"":res[i][j];
      }
   }
   return res;
}
function marcada(mc:MovieClip, pal:String, pos:Array):Boolean{
   var ok:Number = 0;
   for(var k:Number = 0; k<pal.length ;k++){
         if(pos[0]==pos[2]){
            if(pos[1]>pos[3]){
               if(mc["c_"+[pos[1]-k]+"_"+[pos[0]]].sel){
                  ok++;
               }
            } else {
               if(mc["c_"+[pos[1]+k]+"_"+[pos[0]]].sel){
                  ok++;
               }
            }
         } else if (pos[1]==pos[3]){
            if(pos[0]>pos[2]){
               if(mc["c_"+[pos[1]]+"_"+[pos[0]-k]].sel){
                  ok++;
               }
            } else{
               if(mc["c_"+[pos[1]]+"_"+[pos[0]+k]].sel){
                  ok++;
               }
            }
         } else{
            if(mc["c_"+[pos[1]+k]+"_"+[pos[0]+k]].sel){
               ok++;
            }
         }
   }
   return (ok == pal.length)?true:false;
}
function validar(mc:MovieClip, pals:Array, pos:Array):Number{
   var correctas:Number = 0;
   for(var i:Number = 0; i<pals.length ; i++){
      if(marcada(mc,pals[i],pos[i])){
         correctas++;
      }
   }
   return correctas;
}
// eliminar esta variable cuando se ponga el otro boton (es solo provisional)
if(!boton || boton== null){
this.attachMovie("mc_btn","boton",this.getNextHighestDepth());
boton.tit_txt.text = "Comprobar";
}
boton._visible = true;
alinear(Stage.width,Stage.height,boton, "center");
// esta es la accion del boton
boton.onPress = function(){
   var tot:Number = validar(_root.sopa,_root.pal, _root.pos);
   if(!mas){

      _root.attachMovie("vacio","mas",_root.getNextHighestDepth());
   }
   if(!mensaje){
      _root.attachMovie("mensaje","mensaje",_root.getNextHighestDepth());
   }
   with (mas){
      _alpha = 80;
      _width = Stage.width;
      _height = Stage.height;
   }
   mensaje.tot_txt.text = tot+" correctas de "+_root.pal.length;
   mensaje.fel_txt.text = (tot<=_root.pal.length/2)?"Debes estudiar mas!":((tot<_root.pal.length)?"Casi perfecto!":"Perfecto!");
   alinear(Stage.width,Stage.height,mensaje, "center")
   alinear(Stage.width,Stage.height,mensaje, "middle")
   back_btn.enabled = false;
   next_btn.enabled = false;
   boton.enabled = false;
   if(!cerrar){
      _root.attachMovie("mc_btn","cerrar",_root.getNextHighestDepth());
      cerrar.tit_txt.text = "Aceptar";
      alinear(Stage.width,Stage.height,cerrar, "center")
      cerrar._y = mensaje._y + mensaje._height + 5;
   }
   mensaje._visible = true;
   mas._visible = true;
   cerrar._visible = true;
   cerrar.onPress = function(){
         mensaje._visible = false;
         mas._visible = false;
         this._visible = false;
         boton.enabled = true;
         back_btn.enabled = true;
         next_btn.enabled = true;
   }   
}
// Para ir seleccionando hay que hacer clic en cada casilla y para deseleccionar se vuelve a hacer clic
var pal:Array = ["completo","llano","obtuso","grados","recto","agudo","angulo","transportador"];
var pos:Array = [color=#A40000][[0,7,0,0],[2,0,6,4],[6,4,1,4],[9,0,9,5],[7,1,7,5],[4,6,8,6],[6,7,11,7],[0,9,12,9]];[/color]
if(!sopa || sopa == null){
   var sopa:MovieClip = dibujaTablero(this,28.6,crearEsquema(pos,pal,13,10));
   sopa.opaqueBackground = 0;
   sopa._x = 181.2;
   sopa._y = 162.7;
}
sopa._visible = true;
boton._y = sopa._y + sopa._height + 10;

Por alejilla

Claber

120 de clabLevel



Genero:Femenino  

Colombia

msie7
Citar            
MensajeEscrito el 17 Mar 2009 09:05 pm
Bueno no me quedo re rojo pero es debajo de donde estan las palabras para buscar llano, obtuso....

Por alejilla

Claber

120 de clabLevel



Genero:Femenino  

Colombia

msie7
Citar            
MensajeEscrito el 17 Mar 2009 10:11 pm
El Array pal contiene las palbras:
var pal:Array = ["completo","llano","obtuso","grados","recto","agudo","angulo","transportador"];
El array de numero contiene arrays uno a uno con las palabras que especifican en que parte de la sopa de letras se encuentra la palabra:
var pos:Array = [[0,7,0,0],[2,0,6,4],[6,4,1,4],[9,0,9,5],[7,1,7,5],[4,6,8,6],[6,7,11,7],[0,9,12,9]];

Por ejemplo, la palabra angulo, le corresponde el array [6,7,11,7] significa que estara apartir de la casilla 6,7 hasta la casilla 11,7 en formato x,y

Cambiando esos 2 arrays podras crear nuevas sopas de letras.

Por LongeVie

Claber

1741 de clabLevel

1 tutorial

Genero:Masculino  

En un lugar, re moto.

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.