Foro especializado en Warcraft III y su editor
 
BuscarEntrar al ChatboxPortal del foroÍndiceSpellsRegistrarseConectarseGrupos de Usuarios
Eventos Actuales
¡ Bienvenido Invitado !

Editar Perfil

Tus temas
Tus Mensajes ()

Enlaces rápidos








Comparte
 

 Dudas con estructura de datos

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
io
Aprendiz
io


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 24
Reputación Reputación : 5
Monedas de oro : 314
Monedas de Platino : 0 Dudas con estructura de datos Empty

Inventario :
Dudas con estructura de datos Empysl10 Dudas con estructura de datos Empysl10 Dudas con estructura de datos Empysl10
Dudas con estructura de datos Empysl10 Dudas con estructura de datos Empysl10 Dudas con estructura de datos Empysl10

Dudas con estructura de datos Empty
Mensaje(#) Tema: Dudas con estructura de datos Dudas con estructura de datos Clock10Miér Ene 29, 2014 8:40 pm

Hola , trataba de implementar algo y me he quedado trabado, necesito implementar un struct o guardar de alguna otra forma 6 numeros enteros en un array dentro de un struct que extiende a un array, pero el problema está en que no doy con el algoritmo necesario para manejar la forma en que se agregan los elementos es decir tengo 6 elementos que guardar pero cada uno ocuparia un slot sin embargo no puedo definir el orden en que se guardan los elementos y luego asignar otro elemento a esta lista
Ejemplo:

Código:

//digamos que estas son las posiciones guardadas de forma aleatoria en el array

6=[1]
0=[2]
1=[3]
3=[4]
0=[5]
2=[6]

teniendo este caso necesito un algoritmo o alguna forma para que al asignar un nuevo elemento a la lista encuentre con el menor numero de iteraciones posibles una posicion que contenga 0 (partiendo de que las posiciones 1 , 3 , 4 ,6 estan ocupadas)



lo de arriba es la forma que realmente tiene el array , pero digamos que por oscuras razones no puedo iterar todo el array por lo tanto solo puedo recuperar las posiciones que estan ocupadas
quedando mi array de salida algo asi:
Código:

2=[1]
3=[2]
1=[3]
6=[4]
// aqui es donde necesito de alguna manera conocer las possiciones que no están ocupadas para agregar una nueva posicion al array los numeros entre []representan los indices del array y los otros los valores almacenados , necesito encotnrar dentro de los valores almacenados el menor numero que esté disponible para asignar el array


PD : perdon por no haber sido lo suficientemente especifico desde el principio Very Happy


Última edición por io el Jue Ene 30, 2014 12:25 am, editado 3 veces (Razón : información incompleta)
Volver arriba Ir abajo
WonderWoman
Capitán
WonderWoman


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 129
Reputación Reputación : 27
Monedas de oro : 829
Monedas de Platino : 0 Dudas con estructura de datos Empty

Inventario :
Dudas con estructura de datos Empysl10 Dudas con estructura de datos Empysl10 Dudas con estructura de datos Empysl10
Dudas con estructura de datos Empysl10 Dudas con estructura de datos Empysl10 Dudas con estructura de datos Empysl10

Dudas con estructura de datos Empty
Mensaje(#) Tema: Re: Dudas con estructura de datos Dudas con estructura de datos Clock10Miér Ene 29, 2014 9:17 pm

No se si te servirá, el siguiente código lo uso siempre para generar IDs.
Llamas a ObtenerID() y retorna un entero que podes usar como posición de un array o tabla hash para guardar tu integer allí.
Si eventualmente una posición de tu array se vuelve 0, llamas a DestruirID(Posición que acabas de vaciar) y queda liberado para que cuando pidas otro ID te pueda devolver esa posición.


Código:
[jass]
globals
    private constant integer OBJETOIDPOS = -1
    private integer IDS = 0
    private integer array IDLIST
    private hashtable ID_hash = InitHashtable()
endglobals

function ObtenerID takes nothing returns integer
   local integer id = 0
    set IDS = IDS + 1
    set id = IDLIST[IDS]
    if id == 0 then
        set IDLIST[IDS] = IDS
        set id = IDS
    endif
    call SaveInteger(ID_hash, OBJETOIDPOS, id, IDS)
    return id
endfunction

function DestruirID takes integer id returns nothing
    local integer idpos = 0
 if id > 0 and HaveSavedInteger(ID_hash, OBJETOIDPOS, id) then
 set idpos = LoadInteger(ID_hash, OBJETOIDPOS, id)
 set IDLIST[idpos] = IDLIST[IDS]
 call SaveInteger(ID_hash, OBJETOIDPOS, IDLIST[IDS], idpos)
 set IDLIST[IDS] = id
 call RemoveSavedInteger(ID_hash, OBJETOIDPOS, id)
 set IDS = IDS - 1
 endif
endfunction
[/jass]


and it makes me wonder...
Volver arriba Ir abajo
Ruke

Ruke


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 298
Reputación Reputación : 63
Monedas de oro : 1677
Monedas de Platino : 0 Dudas con estructura de datos Empty

Inventario :
Dudas con estructura de datos Empysl10 Dudas con estructura de datos Empysl10 Dudas con estructura de datos Empysl10
Dudas con estructura de datos Empysl10 Dudas con estructura de datos Empysl10 Dudas con estructura de datos Empysl10

Dudas con estructura de datos Empty
Mensaje(#) Tema: Re: Dudas con estructura de datos Dudas con estructura de datos Clock10Miér Ene 29, 2014 11:52 pm

@WonderWoman escribió:
...

Dudas con estructura de datos K0t66gu

Se... o podes usar lo siguiente:

Código:
[jass]struct s
   static method create takes nothing returns thistype
      local thistype this = thistype.allocate()
      
      if ( this > 6 ) then
         call this.dellocate()
         return 0
      endif
      
      return this
   endmethod
endstruct[/jass]
Volver arriba Ir abajo
Contenido patrocinado




Dudas con estructura de datos Empty
Mensaje(#) Tema: Re: Dudas con estructura de datos Dudas con estructura de datos Clock10

Volver arriba Ir abajo
 

Dudas con estructura de datos

Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.

 Temas similares

-
» Dudas tontas
» Dudas sobre juego!
» Un pequeño cristal capaz de almacenar datos para siempre
» dudas entre mi ex o mi actual pareja
» dudas sobre una mujer

Permisos de este foro:No puedes responder a temas en este foro.
Warcraft III - WorldEditor :: Zona de Aprendizaje(Dudas) :: Jass (Detonadores)-