Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

156
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda