
Quote from ManuGarciaEU on July 8, 2021, 9:27 pmHola a todos.
Tengo este código:
If [casillasMovidas] == 0
SetVar [nuevaCoordX] [coorX]
SetVar [nuevaCoordY] [coorY]+1
SetVar [nuevaCasilla] "Casilla[nuevaCoordY]F[nuevaCoordX]"
ConsoleLog "CASILLA: [nuevaCasilla]"
MoveObjectIntoContainer "Movimiento1" "[nuevaCasilla]"
MoveObject "Movimiento1" 1 1
EndIf¿Por qué algunas veces en esta linea: SetVar [nuevaCoordY] [coorY]+1 me hace bien la suma y otras veces me guarda una cadena de texto?
[coorY] es un valor numérico.
Si coorY = 7, a veces guarda en nuevaCoordY el valor 8 (7+1) (hace bien la suma) y otras veces me guarda el 71 (como si juntara cadenas).
¿Un bug?
Gracias.
Saludos.
Hola a todos.
Tengo este código:
If [casillasMovidas] == 0
SetVar [nuevaCoordX] [coorX]
SetVar [nuevaCoordY] [coorY]+1
SetVar [nuevaCasilla] "Casilla[nuevaCoordY]F[nuevaCoordX]"
ConsoleLog "CASILLA: [nuevaCasilla]"
MoveObjectIntoContainer "Movimiento1" "[nuevaCasilla]"
MoveObject "Movimiento1" 1 1
EndIf
¿Por qué algunas veces en esta linea: SetVar [nuevaCoordY] [coorY]+1 me hace bien la suma y otras veces me guarda una cadena de texto?
[coorY] es un valor numérico.
Si coorY = 7, a veces guarda en nuevaCoordY el valor 8 (7+1) (hace bien la suma) y otras veces me guarda el 71 (como si juntara cadenas).
¿Un bug?
Gracias.
Saludos.

Quote from ManuGarciaEU on July 8, 2021, 9:32 pmTambién me ocurre cuando hago esto:
SetVar [nuevaCoordY] [nuevaCoordY]+1
¿Hay alguna forma de autoincrementar una variable que no esta? En el fondo me interesa el incremento o decremento de la variable.
Gracias.
También me ocurre cuando hago esto:
SetVar [nuevaCoordY] [nuevaCoordY]+1
¿Hay alguna forma de autoincrementar una variable que no esta? En el fondo me interesa el incremento o decremento de la variable.
Gracias.

Quote from luishp on July 9, 2021, 9:19 amHola @manugarciaeu,
Normalmente, si haces una suma sobre una variable numérica se realizará la adición, pero si la variable es de cadena, aunque contenga un número, realizará una concatenación. Si quieres asegurarte de que la suma se va a realizar independientemente del tipo de variable utiliza Math en lugar de SetVar. Cualquiera de estas dos posibilidades funcionará correctamente.
Como cadena:
SetVar [mivar] "0" Math "[mivar]+1" 0 [mivar] jsAlert [mivar]Como número:
SetVar [mivar] 0 Math "[mivar]+1" 0 [mivar] jsAlert [mivar]Saludos!
Hola @manugarciaeu,
Normalmente, si haces una suma sobre una variable numérica se realizará la adición, pero si la variable es de cadena, aunque contenga un número, realizará una concatenación. Si quieres asegurarte de que la suma se va a realizar independientemente del tipo de variable utiliza Math en lugar de SetVar. Cualquiera de estas dos posibilidades funcionará correctamente.
Como cadena:
SetVar [mivar] "0" Math "[mivar]+1" 0 [mivar] jsAlert [mivar]
Como número:
SetVar [mivar] 0 Math "[mivar]+1" 0 [mivar] jsAlert [mivar]
Saludos!

Quote from ManuGarciaEU on July 9, 2021, 10:22 amHola.
Gracias por la respuesta.
Eso es lo que me extraña, porque he revisado todo el código a fondo y todas las variables son numéricas cuando uso SetVar, de hecho funciona casi siempre la suma, pero alguna veces concatena. Además, he comprobado el funcionamiento con el Log del navegador.
También estuve viendo Math pero no sabía muy bien cómo usarlo... me tendré que replantear el código anterior para ver cómo puedo guardar el valor de una variable en la misma variable incrementándola y decrementándola.
Gracias.
Saludos.
Hola.
Gracias por la respuesta.
Eso es lo que me extraña, porque he revisado todo el código a fondo y todas las variables son numéricas cuando uso SetVar, de hecho funciona casi siempre la suma, pero alguna veces concatena. Además, he comprobado el funcionamiento con el Log del navegador.
También estuve viendo Math pero no sabía muy bien cómo usarlo... me tendré que replantear el código anterior para ver cómo puedo guardar el valor de una variable en la misma variable incrementándola y decrementándola.
Gracias.
Saludos.

Quote from luishp on July 9, 2021, 10:34 am@manugarciaeu
Si concatena es porque, por alguna razón, está tomando la variable como una cadena de texto. Habría que identificar la situación en que sucede para poder darle una explicación. De todos modos fíjate que también puedes utilizar ToNumber para asegurarte de que es un número antes de realizar la suma.Gracias a ti.
@manugarciaeu
Si concatena es porque, por alguna razón, está tomando la variable como una cadena de texto. Habría que identificar la situación en que sucede para poder darle una explicación. De todos modos fíjate que también puedes utilizar ToNumber para asegurarte de que es un número antes de realizar la suma.
Gracias a ti.