Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: orden_alfabetico(str,index)  (Leído 515 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado dixon2010

en: Noviembre 09, 2018, 05:01:57 pm
Nombre del creador: REYES DAVILA
Breve descripción de su función: orden alfabético.
Versión GM utilizada: GM4
Código del Script:

b1=0
b3=0
kbk=0
contador=0

//ADMINISTRADOR DE PALABRAS
palabra_ram=""
i2=1
for(i=1;i<=string_length(argument0);i+=1)
 {
  letra=string_copy(argument0,i,1)
  letra_pos=string_copy(argument0,i-1,1)
  if(letra!=" ")palabra_ram+=letra
  if(letra=" " && letra_pos!=" " || i=string_length(argument0))
   {
    palabra[i2]=palabra_ram
    palabra_id[i2]=i2
    palabra_letra[i2]=string_copy(palabra[i2],1,1)
    if(ord(palabra_letra[i2])>=91 && ord(palabra_letra[i2])<=122)palabra_letra[i2]=chr(ord(palabra_letra[i2])-32)
    palabra_ram=""
    if(i<string_length(argument0))i2+=1
   }
 }
palabra_numero=i2

//organizador de palabras
for(i=1;i<=palabra_numero;i+=1)
 {
 palabra_pos[i]=1
 for(i2=1;i2<=palabra_numero;i2+=1)
  {
  ord1=ord(palabra_letra[i])
  ord2=ord(palabra_letra[i2])
  id1=palabra_id[i]
  id2=palabra_id[i2]
  if(i!=i2 && ord1 > ord2){palabra_pos[i]+=1}
  if(i!=i2 && ord1 = ord2)
   {
   if(palabra[i]=palabra[i2])    
    {
    if(id1>id2){palabra_pos[i]+=1}
    }
    else
    {
    if(string_length(palabra[i])>1 && string_length(palabra[i2])>1)
     {
     superior=0
     i3=1
     repetir=1
     for(i3=1;repetir;i3+=1)
      {
      repetir=0
      letra=string_copy(palabra[i],i3+1,1)
      letra2=string_copy(palabra[i2],i3+1,1)
      if(string_length(palabra[i])>i3-1 && string_length(palabra[i2])>i3-1)
       {
       if(ord(letra) > ord(letra2)){superior=1}
       if(ord(letra) = ord(letra2)){repetir=1;}
       }
      }
     if(superior){palabra_pos[i]+=1}
     }
     else
     {
     if(string_length(palabra[i])!=string_length(palabra[i2]))
      {
      if(string_length(palabra[i])>string_length(palabra[i2])){palabra_pos[i]+=1;}
      }
      else
      {
      if(id1>id2){palabra_pos[i]+=1;palabra_cod[i]="aqui"}
      }
     }//fin else
    }//fin else
   }//fin if
  }//fin for
 }//fin for

//organizador de palabras 2
for(i=1;i<=palabra_numero;i+=1)
 {
 for(i2=1;i!=palabra_pos[i2];i2+=1){};
 palabra_ordenada[i]=palabra[i2]
 }

//agrupando palabras
str2=""
for(i=1;i<=palabra_numero;i+=1)
 {
 str2+=palabra_ordenada[i]+" "
 }

//devolviendo valor

if(argument1)
 {
 return palabra_ordenada[argument1]
 }
 else
 {
 return  str2
 }

orden_alfabetico(str,index): en str colocas la cadena con el conjunto de palabras a ordenar y en index colocas la palabra que quieres ver, si no se especifica nada devuelve la cadena completa ordenada.

Ejemplo1:
orden_alfabetico("corazón tiburón azul ballena")
esto devuelve cadena: "azul ballena corazón tiburón"

Ejemplo2:
orden_alfabético("corazón tiburón azul ballena", 1)
esto devuelve cadena: "azul"

« última modificación: Diciembre 15, 2018, 07:14:06 pm por dixon2010 »

Dios nos ayuda y nos da sabiduría para vivir. Cáda código es una obra maestra que hay que respetar aunque exista un código mas eficiente y sencillo.
 
Los siguientes usuarios dieron las gracias a este tema: 3dgeminis


No Tienes Permisos Para Dar Puntos
point 8 Puntos

Usuarios que puntuaron el tema » Clamud (8 Pts)