From 9ce10dfcee735585acc0149eb27478a0c357fd7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Bersier?= Date: Wed, 24 Jul 2019 02:08:23 +0200 Subject: [PATCH] Guess the number --- commands/minigame/guess.js | 77 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 commands/minigame/guess.js diff --git a/commands/minigame/guess.js b/commands/minigame/guess.js new file mode 100644 index 00000000..64825e3e --- /dev/null +++ b/commands/minigame/guess.js @@ -0,0 +1,77 @@ +const { Command } = require('discord-akairo'); + +class guessCommand extends Command { + constructor() { + super('guess', { + aliases: ['guess'], + category: 'minigame', + description: { + content: 'Guess the number', + usage: '', + examples: [''] + } + }); + } + + async exec(message) { + message.channel.send('1. Easy ( 0 - 100 )\n2. Medium ( 0 - 1000 )\n3. Hard ( 0 - 10000'); + const filter = m => m.content && m.author.id == message.author.id; + message.channel.awaitMessages(filter, {time: 10000, max: 1, errors: ['time'] }) + .then(messages => { + let max; + + if (messages.map(messages => messages.content)[0] == 1) { + max = 100; + } else if (messages.map(messages => messages.content)[0] == 2) { + max = 1000; + } else if (messages.map(messages => messages.content)[0] == 3) { + max = 10000; + } else { + return message.channel.send('This isin\'t a valid difficulty number! Please try again.'); + } + + let secretnumber = Math.floor((Math.random() * max) + 1); + let numberTry = 0; + console.log(secretnumber); + + message.channel.send('What is the number?'); + message.channel.awaitMessages(filter, {time: 10000, max: 1}) + .then(input => { + checkNumber(input.map(input => input.content)[0]); + }); + + function tryAgain (input) { + if (input != secretnumber) { + if (input > secretnumber) { + message.channel.send('Its less!'); + } else if (input < secretnumber) { + message.channel.send('Its more!'); + } + } + message.channel.send('What is the number?'); + message.channel.awaitMessages(filter, {time: 10000, max: 1}) + .then(input => { + checkNumber(input.map(input => input.content)[0]); + }); + } + + function checkNumber (input) { + numberTry++; + if (input != secretnumber) { + tryAgain(input); + } else { + if (numberTry > 1) { + return message.channel.send(`Congratulations! You won! It took you ${numberTry} turns!`); + } else { + return message.channel.send('Congratulations! You won! It took you 1 Turn!'); + } + } + } + }) + .catch(() => { + return message.reply('Timed out'); + }); + } +} + +module.exports = guessCommand; \ No newline at end of file