From 9ce10dfcee735585acc0149eb27478a0c357fd7c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lo=C3=AFc=20Bersier?= <supositware@macbook-pro-de-loic.home>
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 0000000..64825e3
--- /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