2019-04-15, 03:19 PM
Est? bien, es una gu?a b?sica, pero creo que falla en varios aspectos.
En caso de hacer un random(3), los resultados ir?n del 0 al 2 (inclusive), es decir: 0, 1 ? 2. Por lo tanto el "case 3" nunca ser? ejecutado.
No hac?s menci?n al caso "default" ni ense??s la posibilidad de incluir m?s de un valor en un solo caso:
Es posible expresarlo de otro modo obteniendo el mismo resultado:
Pru?bese: https://fiddle.sa-mp.dev/GastronomicalUnchangedIbisbill
Es v?lido expresarlo de ambas formas aunque, evidendentemente, utilizar un switch donde corresponde siempre es m?s ordenado que utilizar un if.
Otra cosa: divid?s variables "globales" y variables "del jugador". Hasta donde yo s?, las variables se pueden dividir en globales (que est?n fuera de una funci?n) y locales (que est?n dentro de una funci?n). No existen las variables del jugador. Una variable expresada como "gPlayerInfo[MAX_PLAYERS]" es un array con un espacio equivalente al m?ximo de jugadores (MAX_PLAYERS). Naturalmente, se utilizar?a para guardar informaci?n relacionada a determinado jugador, pero eso no hace que deje de ser una variable global. A menos, claro, que est? declarada dentro de una funci?n.
(2019-04-14, 03:19 AM)klays Wrote: Primero hay que tener una variable creada, para testear puedes probar con esto:
PHP Code:new randomnumber = random(3);
Luego de eso creamos el switch, puede ser llamado cuando se ejecute un comando, por ejemplo.
PHP Code:switch(randomnumber)
{
? ??case 0: print("el numero es 0.");?
? ? case 1: print("el numero es 1.");
? ? case 2: print("el numero es 2.");
? ? case 3: print("el numero es 3.");
}
Esto significar?, si la variable (randomnumber) es igual a x (el n?mero aleatorio de 0 a 3) imprimir? cierto valor (print).
En caso de hacer un random(3), los resultados ir?n del 0 al 2 (inclusive), es decir: 0, 1 ? 2. Por lo tanto el "case 3" nunca ser? ejecutado.
No hac?s menci?n al caso "default" ni ense??s la posibilidad de incluir m?s de un valor en un solo caso:
Code:
new rand = random(20);
switch(rand)
{
case 0..4: // lo mismo que hacer 0, 1, 2, 3, 4
print("El n?mero aleatorio es un n?mero entre cero y cuatro, inclusive.");
case 5:
print("El n?mero aleatorio es cinco.");
case 6, 7, 8, 9, 10: // lo mismo que hacer 6..10
print("El n?mero aleatorio es un n?mero entre seis y diez, inclusive.");
default: // ninguno de los casos es verdadero
print("El n?mero aleatorio es menor a cero o mayor a diez.");
}
Es posible expresarlo de otro modo obteniendo el mismo resultado:
Code:
new rand = random(20);
if(rand >= 0 && rand <= 4)
print("El n?mero aleatorio es un n?mero entre cero y cuatro, inclusive.");
else if(rand == 5)
print("El n?mero aleatorio es cinco.");
else if(rand == 6 || rand == 7 || rand == 8 || rand == 9 || rand == 10)
print("El n?mero aleatorio es un n?mero entre seis y diez, inclusive.");
else
print("El n?mero aleatorio es menor a cero o mayor a diez.");
Pru?bese: https://fiddle.sa-mp.dev/GastronomicalUnchangedIbisbill
Es v?lido expresarlo de ambas formas aunque, evidendentemente, utilizar un switch donde corresponde siempre es m?s ordenado que utilizar un if.
Otra cosa: divid?s variables "globales" y variables "del jugador". Hasta donde yo s?, las variables se pueden dividir en globales (que est?n fuera de una funci?n) y locales (que est?n dentro de una funci?n). No existen las variables del jugador. Una variable expresada como "gPlayerInfo[MAX_PLAYERS]" es un array con un espacio equivalente al m?ximo de jugadores (MAX_PLAYERS). Naturalmente, se utilizar?a para guardar informaci?n relacionada a determinado jugador, pero eso no hace que deje de ser una variable global. A menos, claro, que est? declarada dentro de una funci?n.