MTA Team 0xCiBeR Posted November 30, 2013 MTA Team Share Posted November 30, 2013 Este es mi pedazo de codigo..Estara malformulada la funcion? Dice que falta un END en MinHeap:_tostring(index,depth) .. Pero no falta nada..Ya intente agregar un end y nada MinHeap = {} MinHeap.__index = MinHeap function MinHeap.new() return setmetatable({n = 0}, MinHeap) end function MinHeap:__tostring(index, depth) index = index or 0 depth = depth or 0 if index >= self.n then return "" end return " ":rep(depth) .. tostring(self[index]) .. "\n" .. self:__tostring(index * 2 + 1, depth + 1) .. self:__tostring(index * 2 + 2, depth + 1) end Link to comment
MTA Team 0xCiBeR Posted December 3, 2013 Author MTA Team Share Posted December 3, 2013 40 visitas y nadie responde Link to comment
Alexs Posted December 4, 2013 Share Posted December 4, 2013 MinHeap = {} MinHeap.__index = MinHeap function MinHeap.new() return setmetatable({n = 0}, MinHeap) end function MinHeap:__tostring(index, depth) index = index or 0 depth = depth or 0 if index >= self.n then return "" end return (" "):rep(depth) .. tostring(self[index]) .. "\n" .. self:__tostring(index * 2 + 1, depth + 1) .. self:__tostring(index * 2 + 2, depth + 1) end Es un error bastante sencillo, deberías intentar hacer tus propias funciones para evitarlos. Link to comment
MTA Team 0xCiBeR Posted December 4, 2013 Author MTA Team Share Posted December 4, 2013 Gracias. Pero porqué dices que no son mis funciones?.Tengo problemas con el uso de tablas, mas no. Link to comment
Castillo Posted December 4, 2013 Share Posted December 4, 2013 1: El script esta usando OOP, y juzgando por tus ultimos topics pidiendo ayuda, no sabrias usarlo. 2: Lo vi antes ( en el recurso "gps" que viene con el MTA ), creo que lo creo arc_. Link to comment
Alexs Posted December 4, 2013 Share Posted December 4, 2013 'MTA San Andreas 1.3\server\mods\deathmatch\resources(\[gameplay])\gps\MinHeap.lua': MinHeap = {} MinHeap.__index = MinHeap local floor = math.floor function MinHeap.new() return setmetatable({ n = 0 }, MinHeap) end function MinHeap:insertvalue(num) self[self.n] = num self.n = self.n + 1 local child = self.n - 1 local parent, temp while child > 0 do parent = floor((child - 1)/2) if self[parent] <= self[child] then break end temp = self[parent] self[parent] = self[child] self[child] = temp child = parent end return true end function MinHeap:findindex(num, root) root = root or 0 if root >= self.n or num < self[root] then return false end if num == self[root] then return root end return self:findindex(num, root*2 + 1) or self:findindex(num, root*2 + 2) end function MinHeap:deleteindex(index) if index < 0 or index >= self.n then return false end local deleted = self[index] self[index] = self[self.n-1] self[self.n-1] = nil self.n = self.n - 1 local parent = index local child, temp while true do child = parent*2 + 1 if child >= self.n then break end if child < self.n - 1 and self[child+1] < self[child] then child = child + 1 end if self[parent] <= self[child] then break end temp = self[parent] self[parent] = self[child] self[child] = temp parent = child end return deleted end function MinHeap:deletevalue(num) local index = self:findindex(num) if not index then return false end return self:deleteindex(index) end function MinHeap:size() return self.n end function MinHeap:empty() return self.n == 0 end function MinHeap:__tostring(index, depth) index = index or 0 depth = depth or 0 if index >= self.n then return '' end return (' '):rep(depth) .. tostring(self[index]) .. '\n' .. self:__tostring(index*2+1, depth+1) .. self:__tostring(index*2+2, depth+1) end Link to comment
MTA Team 0xCiBeR Posted December 6, 2013 Author MTA Team Share Posted December 6, 2013 Use las mismas variables para practicar como dije soy nuevo en esto.. Y estoy aprendiendo.. ..Igual no importa.. Es increible como los scripters de la seccion en español le buscan la quinta pata al gato como dice el dicho..Vas a la seccion en ingles y ahi no se preocupan por cosas como esta.. Salu2 PD: y no crean que porque pregunto bastante en el foro soy un Noob.Bajen un poco del pedestal.No quiero el offtopic asi que mejor cierren o borren este Post. Link to comment
Alexs Posted December 7, 2013 Share Posted December 7, 2013 No es mi intención ni la de @SolidSnake14 insultarte, hacerte sentir mal o hacernos parecer a nosotros mejor, pero según veo el código en que necesitabas ayuda no tenia ninguna diferencia con el que esta en el recurso 'gps', fuiste tu quien pregunto por que dije que la función era de alguien mas y nosotros respondimos, deberías intentar relajarte y dejar de esforzarte por parecer un scripter profesional o algo así. A fin de cuentas, esto es solo un juego. "Tu" script: function MinHeap:__tostring(index, depth) index = index or 0 depth = depth or 0 if index >= self.n then return "" end return " ":rep(depth) .. tostring(self[index]) .. "\n" .. self:__tostring(index * 2 + 1, depth + 1) .. self:__tostring(index * 2 + 2, depth + 1) end El de 'gps': function MinHeap:__tostring(index, depth) index = index or 0 depth = depth or 0 if index >= self.n then return '' end return (' '):rep(depth) .. tostring(self[index]) .. '\n' .. self:__tostring(index*2+1, depth+1) .. self:__tostring(index*2+2, depth+1) end Link to comment
MTA Team 0xCiBeR Posted December 7, 2013 Author MTA Team Share Posted December 7, 2013 ok Link to comment
Recommended Posts