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

162
Vistas
La matriz Rock Paper Scissor no funciona Discord.js V12

Estoy tratando de construir un juego RPS en mi bot de Discord. Quiero agregar la funcionalidad de que si la palabra que elige no existe en la list , devolverá un mensaje. Este es mi código hasta ahora:

 async execute(message, args, cmd, client, Discord, profileData) { if (!args.length) return message.channel.send('To keep it fair, also send your pick!'); //If you don't //send a second //argument. const list = ['rock', 'paper', 'scissor']; // What the bot accepts. const rps = ['Rock! - ⛰', 'Paper! - 📄', 'Scissor! - ✂']; // Where the bot can // randomly pick from const random = rps[Math.floor(Math.random() * rps.length)]; for (var i = 0; i < list.length; i++) { if (message.content.includes(list[i])) { // If it does exits, // just execute the // command. message.channel.send(random); break; } else { message.channel.send(`\`${args}\` is not a valid option.`); //Return if the //argument you are //sending does not exist //in the list. break; } } },

Pensé que esto funcionaría, y ya hice muchas otras variantes de este. Pero aún así, aunque, por ejemplo, el paper está en la list , todavía me envía "... no es una opción válida". Solo funciona con rock . Entonces, lo que quiero aquí es que si envía algo que no sean los valores dentro de la matriz, regrese.

Para ser breve, tengo dos preguntas:

  1. ¿Cómo puedo solucionar este problema?
  2. Si pongo en mayúscula los valores de la lista ( Rock ), ¿funcionará si envío rock ?

Aquí está el enlace a mi problema: https://imgur.com/rhESIZM

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

0

No tienes que usar un bucle for . En lugar de verificar todo el message nuevamente, solo necesita verificar el primer argumento ( args[0] ). Simplemente puede usar Array#includes y, para que no distinga entre mayúsculas y minúsculas, convierta este argumento a minúsculas. Su list ya incluye solo letras minúsculas, por lo que lo siguiente funcionará:

 async execute(message, args, cmd, client, Discord, profileData) { if (!args.length) return message.channel.send('To keep it fair, also send your pick!'); const list = ['rock', 'paper', 'scissors']; const rps = ['Rock! - ⛰', 'Paper! - 📄', 'Scissors! - ✂']; const random = rps[Math.floor(Math.random() * rps.length)]; if (!list.includes(args[0].toLowerCase())) { return message.channel.send(`\`${args[0]}\` is not a valid option.`); } // args[0] is valid message.channel.send(random); },

ingrese la descripción de la imagen aquí

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