Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 11336

Função para verificar vitória em jogo

$
0
0
prontos ... se tens esses requisitos todos: int checkHorizontal(char * m) { // para todas as linhas for (int line = 1; line < 3; ++line) { // verificar linha "line" if ( pTabuleiro[line * 11 + UM] == pTabuleiro[line * 11 + DOIS] && pTabuleiro[line * 11 + UM] == pTabuleiro[line * 11 + TRES] && pTabuleiro[line * 11 + UM] != '_') // retornar o valor associado ao vencedor return pTabuleiro[line * 11 + UM] == 'O' : -1 : 1; } return 0; } int checkVertical(char * m) { // para todas as colunas for (int column = UM; column <= TRES; ) { // verificar coluna "column" if ( pTabuleiro[0 * 11 + column] == pTabuleiro[1 * 11 + column] && pTabuleiro[0 * 11 + column] == pTabuleiro[2 * 11 + column] && pTabuleiro[0 * 11 + column] != '_') // retornar o valor associado ao vencedor return pTabuleiro[0 * 11 + column] == 'O' : -1 : 1; // incremneto do ciclo de coluna column = column == UM ? DOIS : (column == DOIS ? TRES : TRES + 1); } return 0; } int checkDiagonals(char * m) { // verificar diagonal principal if ( pTabuleiro[0 * 11 + UM] == pTabuleiro[1 * 11 + DOIS] && pTabuleiro[0 * 11 + UM] == pTabuleiro[2 * 11 + TRES] && pTabuleiro[0 * 11 + UM] != '_') // retornar o valor associado ao vencedor return pTabuleiro[0 * 11 + column] == 'O' : -1 : 1; // verificar diagonal secundaria if ( pTabuleiro[2 * 11 + UM] == pTabuleiro[1 * 11 + DOIS] && pTabuleiro[2 * 11 + UM] == pTabuleiro[0 * 11 + TRES] && pTabuleiro[2 * 11 + UM] != '_') // retornar o valor associado ao vencedor return pTabuleiro[0 * 11 + column] == 'O' : -1 : 1; return 0; } int checkWin(char * m) { // verificar vencedor int check = checkHorizontal(m) || checkVertical(m) || checkDiagonals(m); if (check) return check; // verificar se existem espaços vazios for (int line; line < 3; ++line) { for (int column; column <= TRES; ) { // verificar se a célula iterada se encontra vazia if (pTabuleiro[line * 11 + column] == '_') return -2; // incremneto do ciclo de coluna column = column == UM ? DOIS : (column == DOIS ? TRES : TRES + 1); } } // empate ... return 0; }

Viewing all articles
Browse latest Browse all 11336

Trending Articles