Added /drawtriangle command

master
Chloe Fontenot 🏳️‍⚧️ 2023-04-04 23:40:36 +07:00
parent 95a74818dc
commit 52921afd56
1 changed files with 52 additions and 3 deletions

@ -6,7 +6,7 @@ module.exports = {
.setDescription('Draws a design in a codeblock')
.addStringOption(option =>
option.setName('design')
.setDescription("Pick a design. (number 1-3)")
.setDescription("Pick a design. (number 1-4)")
.setRequired(true)
)
.addStringOption(option =>
@ -17,7 +17,7 @@ module.exports = {
async execute(interaction, client) {
var inputString = interaction.options.getString('string');
var design = parseInt(interaction.options.getString('design'));
if (design < 1 || design > 3) {
if (design < 1 || design > 4) {
await interaction.reply('Invalid design choice.');
return;
}
@ -32,7 +32,8 @@ module.exports = {
case 3:
output = design3(inputString);
break;
case 4:
output = design4(inputString);
}
console.log(codeBlock("", output));
var testLength = "\n" + 'output length was ' + (output.length) + " characters.";
@ -125,4 +126,52 @@ function design3(input) {
outputString += "\n";
}
return outputString;
}
function design4(input) {
var outputString = "";
var radius = input.length +1;
var mid = radius;
if (mid % 2 == 1) {
var spaceOffset = " ";
} else {
var spaceOffset = "";
}
// dist represents distance to the center
var dist = parseFloat(0);
var space = ""
for (let i = 0; i < (input.length / 2); ++i) {
space += " ";
}
// for horizontal movement
for (var i = 0; i <= 2 * radius; i++) {
if (i != mid && j != 0) {
// for vertical movement
for (var j = 0; j <= 2 * radius; j++) {
dist = Math.sqrt(
(i - radius) * (i - radius) +
(j - radius) * (j - radius)
);
// dist should be in the range (radius - 0.5)
// and (radius + 0.5) to print stars(*)
if (dist > radius - 0.5 && dist < radius + 0.5) {
outputString += "*";
} else {
outputString += " ";
}
}
} else {
outputString += "*" + space + input + space + spaceOffset + "*";
}
outputString += "\n";
}
return outputString;
}