Foro especializado en Warcraft III y su editor
 
BuscarEntrar al ChatboxPortal del foroÍndiceSpellsRegistrarseConectarseGrupos de Usuarios
Eventos Actuales
¡ Bienvenido Invitado !

Editar Perfil

Tus temas
Tus Mensajes ()

Enlaces rápidos








Comparte | .
 

 Numeros aleatorios únicos

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
EditorInChimp
Aprendiz
EditorInChimp


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 29
Reputación Reputación : 6
Monedas de oro : 108
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Numeros aleatorios únicos Sáb Oct 13, 2018 12:34 am

Aquí el editor simio, posteando un mini tutorial para una herramienta muy útil que pocos le dan el cerebro para como hacerlo: Conseguir numeros aleatorios únicos en un rango.
Esta herramienta es útil para sistemas All Random por ejemplo.

Usaremos el siguiente algoritmo base:

[gui]Base
   Acontecimientos
   Condiciones
   Acciones
       Set UniqueRandomMax = 6
        Do Multiple ActionsFor each (Integer A) from 1 to UniqueRandomMax, do (Actions)
           Bucle: Acciones
               Set UniqueRandomList[(Integer A)] = (Integer A)
        Do Multiple ActionsFor each (Integer A) from 1 to 6, do (Actions)
           Bucle: Acciones
               Set Entero = (Random integer number between 1 and UniqueRandomMax)
               Partida - Display to (All players) the text: (String(UniqueRandomList[Entero]))
               Set UniqueRandomList[Entero] = UniqueRandomList[UniqueRandomMax]
               Set UniqueRandomMax = (UniqueRandomMax - 1)
[/gui]

Este algoritmo nos asegura 6 números aleatorios todos distintos, unos cuantos ejemplos de utilidad.
Es importarlo partirlo en sus partes:
[gui]Set UniqueRandomMax = 6[/gui]
Este será nuestro número total de posibilidades. Puede ser por ejemplo, nuestro número máximo de héroes a elegir

[gui]Do Multiple ActionsFor each (Integer A) from 1 to UniqueRandomMax, do (Actions)
           Bucle: Acciones
               Set UniqueRandomList[(Integer A)] = (Integer A)[/gui]
Este preparativo es necesario y por el momento no lo explicaré mucho, asegurarense de tenerlo

[gui]Do Multiple ActionsFor each (Integer A) from 1 to 6, do (Actions)
           Bucle: Acciones
               Set Entero = (Random integer number between 1 and UniqueRandomMax)
               Partida - Display to (All players) the text: (String(UniqueRandomList[Entero]))
               Set UniqueRandomList[Entero] = UniqueRandomList[UniqueRandomMax]
               Set UniqueRandomMax = (UniqueRandomMax - 1)[/gui]
Aquí en este ejemplo usamos 6 números, como indicamos en la variable UniqueRandomMax antes.
La variable "Entero" guarda el número aleatorio. Y lo importante a notar aquí es que usaremos el número UniqueRandomList[Entero], ya que esa variable contiene un número y estamos seguros que estos números son únicos y no se repetirán.

¿Cómo sabemos eso?
[gui]Set UniqueRandomList[Entero] = UniqueRandomList[UniqueRandomMax]
Set UniqueRandomMax = (UniqueRandomMax - 1)[/gui]
Esto nos asegurará los números únicos, vamos a tener que explicar primero lo que se conoce como "arreglo" o "vector", esto es una "cadena de variables" todas comparten el mismo orden pero difieren en su índice o POSICION dentro del vector, si vemos nuestro ejemplo gráficamente funcionaría así:



Ejemplo N° 1:
 

Ejemplo N° 2:
 



Escriban si necesitan más ejemplos y explicaciones.
Volver arriba Ir abajo
Maty
Capitán
Maty


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 195
Reputación Reputación : 21
Monedas de oro : 737
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: Numeros aleatorios únicos Dom Oct 14, 2018 12:52 pm

Entonces solo usaste una sola variable para todo eso?, tengo una duda en el ejemplo de los héroes aleatorios el numero entero debe ser igual al del los héroes?

buen aporte.


La derrota es el símbolo de la violencia, la victoria lo es de la gloria. study
La crueldad no radica en lo que perdemos, sino en lo que no ganamos. study
Volver arriba Ir abajo
Marcos_M

Marcos_M


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 3152
Reputación Reputación : 531
Monedas de oro : 9797
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: Numeros aleatorios únicos Mar Oct 16, 2018 10:19 am

Apruebo el tutorial, buena explicación
Volver arriba Ir abajo
En línea
EditorInChimp
Aprendiz
EditorInChimp


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 29
Reputación Reputación : 6
Monedas de oro : 108
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: Numeros aleatorios únicos Mar Oct 16, 2018 10:26 am

@Maty escribió:
Entonces solo usaste una sola variable para todo eso?, tengo una duda en el ejemplo de los héroes aleatorios el numero entero debe ser igual al del los héroes?

buen aporte.

Se usan 2 variables siempre. Una variable con cada resultado aleatorio, y otra variable con la cantidad de posibilidades.
En los héroes aleatorios se utiliza

[gui]Do Multiple ActionsFor each (Integer A) from 1 to 8, do (Actions)
Bucle: Acciones[/gui]
Este bucle determina la cantidad de héroes a crear. Si yo uso 8 jugadores, tendré 8 héroes.

[gui]Set Entero = (Random integer number between 1 and AR_CantidadHeroes)[/gui]
Este número aleatorio va de 1 a la cantidad total de tipos de héroes, esta cantidad obtiene valor en el primer detonador. Si ves la voy sumando en 1 por cada héroe que está en el detonador inicial

Luego es aplicar el algoritmo que ya expliqué
Volver arriba Ir abajo
Contenido patrocinado




Mensaje(#) Tema: Re: Numeros aleatorios únicos

Volver arriba Ir abajo
 

Numeros aleatorios únicos

Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.

 Temas similares

-
» Revistas de national geographic
» Loteria de Navidad
» VIERNES 9 DE DICIEMBRE - Por favor pasen sus datos, pálpitos y comentarios de quiniela AQUI para hacerlo más ágil. Gracias.
» Físicos británicos dan un nuevo paso hacia el teletrasporte.
» Dos ministros británicos plantean la salida de su país de la UE

Permisos de este foro:No puedes responder a temas en este foro.
Warcraft III - WorldEditor :: Academia :: Area GUI :: Tutoriales Varios-