Saltar al contenido
Docs

Servicio azar

Referencia del servicio azar. Números y elecciones al azar que salen de la semilla de la partida, para que la partida se pueda repetir igual.

Corresponde aFormato 1, API 1 Para quien escribe código Esta página se genera desde las fuentes del SDK.

En esta página

Números y elecciones al azar que salen de la semilla de la partida, para que la partida se pueda repetir igual.

Los tipos que aparecen en las firmas (Vec3, Texto, el selector) están en la referencia de la API.

Funciones y propiedades de azar#

azar.numero#

ts
azar.numero(): number   // [0, 1)

Decimal en [0, 1).

azar.entero#

ts
azar.entero(min: number, max: number): number

Entero entre min y max, ambos incluidos.

De docs/EJEMPLOS.md, «azar»:

ts
const cantidad = azar.entero(3, 6);

azar.entre#

ts
azar.entre(min: number, max: number): number

Decimal en [min, max).

De docs/EJEMPLOS.md, «mundo: crear piezas desde el script»:

ts
const moneda = mundo.crear({
  forma: 'cilindro',
  posicion: [azar.entre(-10, 10), 1, azar.entre(-10, 10)],
  rotacion: [90, 0, 0],
  tamano: [0.9, 0.16, 0.9],
  material: { color: 'ambar', acabado: 'brillante' },
  solida: false,
  etiquetas: ['moneda']
});

azar.elegir#

ts
azar.elegir<T>(lista: T[]): T

Un elemento de la lista, al azar.

De docs/EJEMPLOS.md, «azar»:

ts
const premio = azar.elegir(['moneda', 'estrella', 'llave']);

azar.mezclar#

ts
azar.mezclar<T>(lista: T[]): T[]

Una copia mezclada de la lista.

De docs/EJEMPLOS.md, «azar»:

ts
const losas = azar.mezclar(mundo.piezas('losa'));

azar.suerte#

ts
azar.suerte(p: number): boolean

true con probabilidad p (0 a 1).

De docs/EJEMPLOS.md, «azar»:

ts
if (azar.suerte(0.25)) juego.registro('Partida con premio doble:', premio, cantidad);

Ejemplos completos#

Scripts completos de docs/EJEMPLOS.md. Cada uno supone una escena con lo que nombra, y las claves de texto (interfaz.t('...')) deben existir en textos de juego.json.

azar#

scripts/principal.ts
import { azar, juego, mundo } from '@greengames/sdk';

juego.alIniciar(() => {
  const losas = azar.mezclar(mundo.piezas('losa'));
  for (const trampa of losas.slice(0, 3)) trampa.etiquetar('peligro');     // tres trampas distintas cada partida
  const premio = azar.elegir(['moneda', 'estrella', 'llave']);
  const cantidad = azar.entero(3, 6);
  if (azar.suerte(0.25)) juego.registro('Partida con premio doble:', premio, cantidad);
});

Sigue con#