UNPKG

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
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