connect4-checker
Version:
<h3><a href="https://krypton.sergioesquina.repl.co/npm/connect4-checker">Connect4-Checker</a>, comprueba una partida de connect4 usando botones de discord
105 lines (101 loc) • 4.72 kB
JavaScript
function checkBoard(btns, player){
if(!btns || !btns[4] || !btns[4][4] || || !btns[3][4] || !btns[2][4] || !btns[1][4] || !btns[0][4]) throw new TypeError("Necesitas adjuntar 5 filas de botónes + 5 columnas de botónes")
if(!player) throw new TypeError("No se puede comprobar quien ganó sin el usuario")
let winner = player
//Horizontal
if(btns[0][0].label == btns[0][1].label && btns[0][1].label == btns[0][2].label && btns[0][2].label == btns[0][3].label && btns[0][0].label !== "?") return {
status: "end",
member: winner
}
if(btns[1][0].label == btns[1][1].label && btns[1][1].label == btns[1][2].label && btns[1][2].label == btns[1][3].label && btns[1][0].label !== "?") return {
status: "end",
member: winner
}
if(btns[2][0].label == btns[2][1].label && btns[2][1].label == btns[2][2].label && btns[2][2].label == btns[2][3].label && btns[2][0].label !== "?") return {
status: "end",
member: winner
}
if(btns[3][0].label == btns[3][1].label && btns[3][1].label == btns[3][2].label && btns[3][2].label == btns[3][3].label && btns[3][0].label !== "?") return {
status: "end",
member: winner
}
if(btns[4][0].label == btns[4][1].label && btns[4][1].label == btns[4][2].label && btns[4][2].label == btns[4][3].label && btns[4][0].label !== "?") return {
status: "end",
member: winner
}
// Vertical
if(btns[0][0].label == btns[1][0].label && btns[1][0].label == btns[2][0].label && btns[2][0].label == btns[3][0].label && btns[0][0].label !== "?") return {
status: "end",
member: winner
}
if(btns[0][1].label == btns[1][1].label && btns[1][1].label == btns[2][1].label && btns[2][1].label == btns[3][1].label && btns[0][1].label !== "?") return {
status: "end",
member: winner
}
if(btns[0][2].label == btns[1][2].label && btns[1][2].label == btns[2][2].label && btns[2][2].label == btns[3][2].label && btns[0][2].label !== "?") return {
status: "end",
member: winner
}
if(btns[0][3].label == btns[1][3].label && btns[1][3].label == btns[2][3].label && btns[2][3].label == btns[3][3].label && btns[0][3].label !== "?") return {
status: "end",
member: winner
}
if(btns[0][4].label == btns[1][4].label && btns[1][4].label == btns[2][4].label && btns[2][4].label == btns[3][4].label && btns[0][4].label !== "?") return {
status: "end",
member: winner
}
// Diagonal 1
if(btns[3][0].label == btns[2][1].label && btns[2][1].label == btns[1][2].label && btns[1][2].label == btns[0][3].label && btns[3][0].label !== "?") return {
status: "end",
member: winner
}
if(btns[1][1].label == btns[2][2].label && btns[2][2].label == btns[3][3].label && btns[3][3].label == btns[4][4].label && btns[1][1].label !== "?") return {
status: "end",
member: winner
}
if(btns[4][0].label == btns[3][1].label && btns[3][1].label == btns[2][2].label && btns[2][2].label == btns[1][3].label && btns[4][0].label !== "?") return {
status: "end",
member: winner
}
if(btns[3][1].label == btns[2][2].label && btns[2][2].label == btns[1][3].label && btns[1][3].label == btns[0][4].label && btns[3][1].label !== "?") return {
status: "end",
member: winner
}
if(btns[4][1].label == btns[3][2].label && btns[3][2].label == btns[2][3].label && btns[2][3].label == btns[1][4].label && btns[4][1].label !== "?") return {
status: "end",
member: winner
}
// Diagonal 2
if(btns[0][0].label == btns[1][1].label && btns[1][1].label == btns[2][2].label && btns[2][2].label == btns[3][3].label && btns[0][0].label !== "?") return {
status: "end",
member: winner
}
if(btns[1][0].label == btns[2][1].label && btns[2][1].label == btns[3][2].label && btns[3][2].label == btns[4][3].label && btns[1][0].label !== "?") return {
status: "end",
member: winner
}
if(btns[1][0].label == btns[1][2].label && btns[1][2].label == btns[3][2].label && btns[3][2].label == btns[4][3].label && btns[1][0].label !== "?") return {
status: "end",
member: winner
}
if(btns[0][1].label == btns[1][2].label && btns[1][2].label == btns[2][3].label && btns[2][3].label == btns[3][4].label && btns[0][1].label !== "?") return {
status: "end",
member: winner
}
if(btns[1][1].label == btns[2][2].label && btns[2][2].label == btns[3][3].label && btns[3][3].label == btns[4][4].label && btns[1][1].label !== "?") return {
status: "end",
member: winner
}
return {
status: "continue",
member: null
}
}
class checkStatus {
constructor(buttons, player){
return checkBoard(buttons, player)
}
}
module.exports = checkStatus
module.exports.discord = "SEPOX48#4595"
module.exports.version = require("../package.json").version