Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

299
Vistas
¿Cómo puedo encontrar una matriz específica asignada a una variable seleccionada al azar?

Así que estoy tratando de crear una función para un juego de rol de texto que permita a las personas hacer clic en un botón de "vagar" y terminar en una ubicación aleatoria cerca de la actual. Creé varios arreglos que contienen la información sobre qué ubicaciones están cerca de otras, y me gustaría poder presionar un botón, generar una nueva ubicación, guardar esa ubicación como la ubicación actual y generar un nuevo resultado de desplazamiento a partir de la nueva ubicación la próxima vez que se presione el botón.

 //Starting area locations const startingAreaLocations = [Clearing, BigForrest, SmallForrest, Cliffs, Cave, Pond, Start, River, TownEnterance]; const locationsNearStart = [BigForrest, Cliffs, Cave]; const locationsNearBigForrest = [Start, Clearing, River]; const locationsNearCliffs = [Start, Cave, River]; const locationsNearCave = [Cliffs, Pond, River, Start]; const locationsNearClearing = [BigForrest, River, Start]; const locationsNearSmallForrest = [Pond, River, TownEnterance]; const locationsNearPond = [SmallForrest, Cave, River]; const locationsNearRiver = [BigForrest, Cliffs, Cave, Clearing, SmallForrest, Pond, TownEnterance]; const locationsNearTowerEnterance = [SmallForrest, River];

Mi problema en este momento es que cuando genero y cargo una nueva ubicación, no sé cómo decirle al sistema a qué matriz debe hacer referencia para las próximas ubicaciones. Traté de nombrar las variables para poder agregar la variable de nombre de ubicación a una cadena y obtener el nombre de la matriz, pero incluso cuando lo puse a través de un JSON.parse() , lee la cadena, no el contenido de mi formación.

 function wander(location) { wanderLocation = location[Math.floor(Math.random()*location.length)]; console.log(wanderLocation); locationsNearCurrentArea = "locationsNear" + wanderLocation.name; console.log(locationsNearCurrentArea); callPannel(wanderLocation.string); }

¿Cómo puedo crear mejor una característica que me permita rebotar entre ubicaciones como esta?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Usaría una estructura de datos explícita para esto en lugar de un montón de variables. Un mapa con la ubicación actual como clave y ubicaciones cercanas en una matriz como valor debería ser suficiente

 const nearbyLocations = new Map([ //[ key, [ values, ... ] ], [ Start, [ BigForrest, Cliffs, Cave ] ], [ BigForrest, [ Start, Clearing, River ] ], [ Cliffs, [ Start, Cave, River ] ], // etc ])

Entonces puedes usar algo como esto para obtener una ubicación cercana al azar

 const wander = (currentLocation) => { const nearby = nearbyLocations.get(currentLocation) return nearby?.[Math.floor(Math.random() * nearby?.length)] }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Debe poner los datos al menos en JSON, objeto o lista. Aquí hay un ejemplo usando el objeto:

 let data = { startingAreaLocations: ["Clearing", "BigForrest", "SmallForrest"], locationsNearStart: ["BigForrest", "Cliffs", "Cave"], locationsNearBigForrest: ["Start", "Clearing", "River"], }; let newLocation = "River"; let newWander = ["SmallForrest", "BigForrest"]; let dataKey = Object.values(data); data[Object.keys(data)[Object.keys(data).length - 1]].forEach((e) => { if (e === newLocation) { data[`locationsNear${e}`] = newWander; } }); console.log(data);

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda