MÓDULO 1: SCRIPTING

Operadores Matemáticos

En Lua, como en cualquier lenguaje, necesitas hacer cálculos: daño de un ataque, vida restante, dinero ganado... Los operadores matemáticos son tus herramientas para eso.


1. Los 5 Operadores Básicos

Son casi iguales a JavaScript, pero con pequeñas diferencias. Aquí están:

+ Suma

Suma dos números.

local vida = 50
local curacion = 20
local vidaTotal = vida + curacion -- 70
print(vidaTotal)

- Resta

Resta un número de otro.

local vidaMax = 100
local daño = 25
local vidaRestante = vidaMax - daño -- 75
print(vidaRestante)

✖️ * Multiplicación

Multiplica dos números.

local precioItem = 10
local cantidad = 5
local precioTotal = precioItem * cantidad -- 50
print(precioTotal)

/ División

Divide un número entre otro.

local experiencia = 100
local jugadores = 4
local expPorJugador = experiencia / jugadores -- 25
print(expPorJugador)

🟰 % Módulo (Resto)

Devuelve el resto de una división. ¡Útil para saber si un número es par o impar!

local monedas = 17
local resto = monedas % 5 -- 2

local numero = 8
local esPar = numero % 2 -- 0 = es par

2. Operador Especial de Lua: Potencia

Lua tiene un operador único que JavaScript no tiene: ^ para potencias.

local base = 2
local exponente = 3
local resultado = base ^ exponente -- 8 (2 * 2 * 2)
print(resultado)

-- Ejemplo en un juego: calcular daño crítico
local dañoBase = 10
local multiplicador = 2
local dañoCritico = dañoBase ^ multiplicador -- 100

3. Operadores de Asignación Compuesta

Como en JavaScript, puedes combinar operación y asignación en uno solo:

local puntos = 50

puntos += 10 -- puntos = puntos + 10 → 60
puntos -= 5  -- puntos = puntos - 5 → 55
puntos *= 2  -- puntos = puntos * 2 → 110
puntos /= 2  -- puntos = puntos / 2 → 55
puntos %= 10 -- puntos = puntos % 10 → 5

print(puntos)

¡Atención! En Lua no existen ++ ni --. Usa += 1 o -= 1 en su lugar.

local contador = 0
contador += 1 -- contador = 1
contador += 1 -- contador = 2

4. Orden de Precedencia (PEMDAS)

Lua también sigue reglas matemáticas: Paréntesis, Exponentes, Multiplicación/División, Suma/Resta.

local resultado = 5 + 3 * 2 -- 11, no 16 (multiplica primero)
local conParentesis = (5 + 3) * 2 -- 16 (suma primero)

local potencia = 2 ^ 3 * 2 -- 16 (2^3 = 8, luego 8*2)

🛠️ Tu Misión

Prueba esto en lua.org:

  1. Crea dos variables locales: vidaJugador = 100 y dañoEnemigo = 25.
  2. Calcula la vida restante y imprímela.
  3. Crea una variable multiplicador = 1.5 y calcula el daño crítico multiplicando dañoEnemigo * multiplicador.
  4. Usa potencia (^) para calcular 2 ^ 4 e imprime el resultado.
  5. Bonus: Crea un script que simule un sistema de experiencia: expGanada = 150, divide entre 3 jugadores y imprime cuánta exp recibe cada uno.