Ir para conteúdo

Getnumeroinalfabeto(Letra)


Skymagnum

Posts Recomendados

Olá, galerinha do Xtibia essa é minha primeira função *-*

 

function getNumeroInAlfabeto(letra)
local T = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}
for x, i in ipairs(T) do
if tostring(i) == tostring(letra) then
return x
end
end
end

 

 

Exemplo de print:

 

 

a = 1
b = 2
c = 3
d = 4
e = 5
f = 6
g = 7
h = 8
i = 9
j = 10
k = 11
l = 12
m = 13
n = 14
o = 15
p = 16
q = 17
r = 18
s = 19
t = 20
u = 21
v = 22
w = 23
x = 24
y = 25
z = 26

 

 

 

Exemplo de uso:

 

function onSay(cid, words, param, channel)
local letras = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}
for i = 1, #letras do
if tostring(param) == tostring(letras[i]) then
return doPlayerSendTextMessage(cid, 27, "A letra " .. param .. " é o número: " .. getNumeroInAlfabeto(param) .. " no alfabeto.")
end
end
return doPlayerSendTextMessage(cid, 27, "Digite uma letra válida.")
end

 

 

 

 

É isso até mais.

 

 

Créditos:

 

Eu

 

Vodkart( arrumou a talk e uma parte da função )

Editado por Skymagnum
Link para o comentário
Compartilhar em outros sites

Parabéns velho!! REP+

 

agora faz uma função que retorne os maiores números de uma tabela, exemplo:

 

local t = {15,87,90,1}

retornar:

1 -> 90
2 -> 87
3 -> 15
4 -> 1

Link para o comentário
Compartilhar em outros sites

local tab = {21, 32, 816, 2, 5, 4, 83, 33}
table.sort(tab, function(x,y) return x > y end)
for k, v in ipairs(tab) do
print("nº:".. k .." -->".. v)
end

 

return

 

nº:1 -->816
nº:2 -->83
nº:3 -->33
nº:4 -->32
nº:5 -->21
nº:6 -->5
nº:7 -->4
nº:8 -->2

 

 

 

Obrigado ao vodkart por me encinar table.sort ty amo S2

Editado por Skymagnum
Link para o comentário
Compartilhar em outros sites

Muito bom, você está avançando muito rapidamente, garoto. Há outra maneira de fazer essa mesma função sem usar pairs e ipairs e tabelas, consegue fazer?

 

Resposta

 

 

Tem certeza mesmo?

 

 

 


function getABCLetterNumber(letter)
   local ABC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
   for n = string.len(ABC), -1, 1 do
       if string.sub(ABC, n) == letter then
           return n
       end
   end
   return nil
end

 

 

 

 

Link para o comentário
Compartilhar em outros sites

function getNumeroInAlfabeto(letra)
			for letter = 1, 26, 1 do
				  if string.format("%c", 96+letter) == letra then
					  return letter
				  end
			end
end

 

ou

 

function getNumeroInAlfabeto(letra)
for letter = string.byte("a"), string.byte("z") do
if letra == string.char(letter) then
return (letter-96)
 end
   end
end

Editado por Vodkart
Link para o comentário
Compartilhar em outros sites

function getNumeroInAlfabeto(letra)

return string.byte(letra) > 96 and string.byte(letra) < 123 and string.byte(letra) -96
end

 

palhaço! não sabe brincar rsrsrsrs

boa

Link para o comentário
Compartilhar em outros sites

Só esqueceu de usar string.lower, tudo é case-sensitive.

Se eu usar getNumeroInAlfabeto("A"), vai retornar null, pois não tem A maiusculo no seu array, por isso tem que usar o lower

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...