pejuge2 1 #1 Postado 19 Dezembro, 2009 (editado) PON - Par, Impar ou Não numeral? 2 Funções Olá a todos novamente, depois de algum tempo sem postar (o vício no jogo estava muito), voltei com toda força =D. Neste Tutorial simples e rápido demonstrarei duas funções simples criadas por mim (o título está incorreto na visualização antes de entrar, não sei o motivo), como gosto de dar nome aos meus scripts, estes se chamarão PON (Par, Ímpar ou Não numeral), isPON(param) - é par, ímpar ou não numeral? - e PONQtd(table, value) - quantos de pares, ímpares ou não números? - caso já existam estas funções favor postar neste tutorial. Pretendo criar um script com elas (aguardem =D). :fun::style::pirate: Obs.: Ao final disponibilizarei o download e o modo de instalação. Os scripts scripts de ímpares estão feitos baseados nos pares, pois em caso de necessitar mudanças é mais facil. A função isPON: Esta Função é bem simples, ela determina se um número é par ou ímpar. Aí está: function isPON(param) --> Check if the param is a pair or an odd number if type(param) == 'number' then if param % 2 == 0 then return "pair" else return "odd" end else return "not number" end end Bom, utilizei um recurso muito simples, o módulo (%). Para quem desejar saber mais sobre este e outros recursos recomendo este tutorial: http://forums.otserv.com.br/f176/aula-4-operadores-e-bibliotecas-115674/ , iniciei meus estudos com estas aulas e são de grande auxílio, será facil compreender o script com elas (principalmente a do link). Você deve estar se perguntando, o que é esse negócio de param? Bem simples hehe :loool:. Ele é o conteúdo analizado, geralmente o número de uma tabela. A seguir um exemplo prático: local tabela = {1, 2, 3, 4, casa, olho} print(isPON(tabela[2])) -- retornará par print(isPON(tabela[5])) -- retornará not number, pois 'olho' não é um número print(isPON(tabela[3])) -- retornará ímpar A função PONQtd: Esta função é apenas uma aplicação da função isPON, onde no caso avalia uma tabela e determina qual a quantidade de números pares, ímpares ou não números. Bom, aqui está o script: function PONQtd(table, value) --> Check how many pair or odd or not numbers have on the table; use "pair" or "odd" or "not number" local a = nil local total = 0 for a = 1, #table do if isPON(table[a]) == value then total = total + 1 end end return total end Note que neste caso utilizei table ao invés de param pois não há sentido escrever milhões de números para posterior avaliação, o mais comum é avaliação de tabelas. Ok, mas o que é esse negócio de value? Simples, hehe :said::pirate::laugh::ras: (nem gosto de emoticons), é um parâmetro "extra" (necessário colocá-lo), coloque nele "pair" para que se obtenha a quantidade de números pares, "odd" para os ímpares ou "not number" para não números. A seguir um exemplo: local tabela = {1, 2, 3, 4, camarao,"casa", "olho", 20, 90} print(PONQtd(tabela, "pair")) -- retornará 4, pois 2, 4, 20 e 90 são pares print(PONQtd(tabela, "not number")) -- retornará 3 pois camarao, "casa" e "olho" não sao números print(PONQtd(tabela, "odd")) -- retornará 1, pois apenas 1 e 3 neste caso são ímpares Download: Script: http://www.mediafire.com/file/hmz25qtn4gm/Par ou Impar.lua Instalação: Para instalar, é simples, basta colar o arquivo na pasta lib(...\lib) e colar isto: dofile(getDataDir() .. "lib/Par ou Impar.lua") em data.lua(...\lib\data.lua). Lembre-se para no caso de mudar o nome do arquivo mudar o texto em negrito preto. Obrigado: Agradeço por ter lido meu tópico e espero ter ajudado, aguardem o script prometido ^^. Aguardo comentários hehe :w00t: Editado 6 Janeiro, 2010 por pejuge2 Compartilhar este post Link para o post Compartilhar em outros sites
Gpwjhlkdcf 21 #2 Postado 21 Dezembro, 2009 Aprovado e movido. Obrigado pela contribuição. Compartilhar este post Link para o post Compartilhar em outros sites
pejuge2 1 #3 Postado 22 Dezembro, 2009 Obrigado Skyen ^^, meu terceiro post (2 Tutoriais e 1 Download), terceira aprovação, =D. Bom, achei que faltavam estas duas funções, logo logo (quando a preguiça deixar) eu faço o npc prometido (o vício no jogo é muito uhauhauha), além disso PROMETO =D postar um tutorial novo logo logo hehe. Obs.: Estou de férias, mereço um disconto huauhuahuauh Grato, Pedro(PeJuGe) Compartilhar este post Link para o post Compartilhar em outros sites
Gabrielmaxx 0 #4 Postado 22 Dezembro, 2009 O Script é legal, mas pra q q serve dentro de um OT? Só pra saber mesmo, não tou querendo criticar nem nada^^ Compartilhar este post Link para o post Compartilhar em outros sites
pejuge2 1 #5 Postado 22 Dezembro, 2009 Gabriel, eles são funções. Muitas vezes, na hora de avaliar tabelas, o que é muito comum, os scripters se deparam com impedimentos e acabam utilizando meios mais longos, com as funções simplificadas é mais facil este trabalho ^^. Compartilhar este post Link para o post Compartilhar em outros sites
demoniac otserv 0 #6 Postado 3 Janeiro, 2010 Aprovado Gostei de mais do Script. Nao muito ultio, mas bem legal Compartilhar este post Link para o post Compartilhar em outros sites
ricardosohn 0 #7 Postado 2 Janeiro, 2011 gostei, em um futuro proximo pode ser util. aprovado Compartilhar este post Link para o post Compartilhar em outros sites