Imprimir esta página
Viernes, 20 Noviembre 2020 00:00

Como se hizo. Números aleatorios en juegos

Escrito por
Valora este artículo
(2 votos)

En los juegos del Proyecto AJDA se utilizan muy frecuentemente los números aleatorios. Ya sea al tirar un dado, una moneda, sacar cartas, colocar casillas en un panel, etc. Vamos a analizar como se ha realizado desde el punto de vista del código de DescartesJS.

Cuando simplemente se quiere obtener un número entero aleatorio entre uno y una cifra máxima, se puede invocar la siguiente función:

Número aleatorio = ent(rnd*cifra máxima)+1

Un ejemplo concreto, la función a invocar para obtener una tirada de un dado de seis caras sería la siguiente:

DADO = ent(rnd*6)+1

Otro ejemplo, la función a llamar para sacar una carta de la baraja española podría ser:

CARTA = ent(rnd*40)+1

La cifra máxima puede dejarse como parámetro o variable, de forma que pueda ser introducida a través de controles o determinada a través de un cálculo concreto. Un caso concreto podría ser determinar aleatoriamente el jugador que empieza una partida. Teniendo en cuenta que el número de jugadores es una variable que se introduce mediante un control (por ejemplo, NJ), la función quedaría de la siguiente forma:

EMPIEZA = ent(rnd*NJ)+1

En el caso de que se quieran obtener varios números aleatorios de forma independiente, es suficiente con invocar tantas funciones de este tipo como necesitemos. Por ejemplo, si lanzamos tres dados simultáneamente, las funciones podrían ser:

DADO1 = ent(rnd*6)+1

DADO2 = ent(rnd*6)+1

DADO3 = ent(rnd*6)+1

Otra cuestión sería obtener varios números aleatorios diferentes entre si, la cual la dejaremos para otro artículo.

 

 

 

Visto 2123 veces Modificado por última vez en Domingo, 20 Marzo 2022 18:06

Utilizamos cookies para mejorar nuestro sitio web y su experiencia al usarlo. Las cookies utilizadas para el funcionamiento esencial de este sitio ya se han establecido. Para saber más sobre las cookies que utilizamos y cómo eliminarlas , consulte nuestra Política de Privacidad.

  Acepto las Cookies de este sitio.
EU Cookie Directive Module Information