10-20-2019, 05:08 PM
Hola,
este código no funciona más en todas las versiones de la 1.9.3 en adelante. Hasta la 1.9.2 funcionaba. Empleadas bajo Windows 10.
Debeo restar 1 de una variable a dos dimensiones, pero el resultado es siempre 0 aunque el valor inicial no es 1:
Si en lugar de la variable dimensionada empleo una variable fija, el código funciona como deseado:
este código no funciona más en todas las versiones de la 1.9.3 en adelante. Hasta la 1.9.2 funcionaba. Empleadas bajo Windows 10.
Debeo restar 1 de una variable a dos dimensiones, pero el resultado es siempre 0 aunque el valor inicial no es 1:
Code:
SUB addest()
CLS
' Determina qué habilidad estamos entrenando (1-5)
w = abi(7,n)
' -----------------------------------------------------------------------
' ACA ESTÁ EL PROBLEMA:
' Sube de 1 el número de turnos de entrenamiento requerido
abi(6,n) = abi(6,n) - 1
' EL RESULTADO ES SIEMPRE 0 AUNQUE abi(6,n) EN ESTE CASO ESTÁ PUESTO A 5
' -----------------------------------------------------------------------
' Si el entrenamiento aún no ha terminado, sale
IF abi(6,n) > 0 THEN PRINT AT 8,1; "TURNI: ";abi(6,n); AT 1,3; PAPER naz; "\{i7} PILOTA IN ADDESTRAMENTO ": GOTO esci3
' Calcula el resultado del entrenamiento
pseudorand()
' risultadd:
abi(w,n) = abi(w,n) + rand
' Nivel maximo 9
IF abi(w,n) > 9 THEN abi(w,n) = 9
' Imprime el resultado
PRINT AT 1,3; PAPER naz; "\{i7} RISULTATO ADDESTRAMENTO "
' Marca el piloto nuevamente como disponible
pilost$(n) = "D"
esci3:
PRINT AT 4,1; pilo$(n); AT 6,2; abl$(w); ": "; abi(w,n)
premitasto()
END SUB
Si en lugar de la variable dimensionada empleo una variable fija, el código funciona como deseado:
Code:
SUB addest()
CLS
' Determina qué habilidad estamos entrenando (1-5)
w = abi(7,n)
k = abi(6,n)
' Sube de 1 el número de turnos de entrenamiento requerido
k = k - 1
' Si el entrenamiento aún no ha terminado, sale
IF k > 0 THEN PRINT AT 8,1; "TURNI: ";k; AT 1,3; PAPER naz; "\{i7} PILOTA IN ADDESTRAMENTO ": GOTO esci3
' Calcula el resultado del entrenamiento
pseudorand()
' risultadd:
abi(w,n) = abi(w,n) + rand
' Nivel maximo 9
IF abi(w,n) > 9 THEN abi(w,n) = 9
' Imprime el resultado
PRINT AT 1,3; PAPER naz; "\{i7} RISULTATO ADDESTRAMENTO "
' Marca el piloto nuevamente como disponible
pilost$(n) = "D"
esci3:
abi(6,n) = k
PRINT AT 4,1; pilo$(n); AT 6,2; abl$(w); ": "; abi(w,n)
premitasto()
END SUB