1- O código abaixo exibe o jogo da velha programado em aula, porém faltam dois trechos de código, as funções de imprimeMatriz e de verificaVitoria; Escreva essas funções para que as mesmas funcionem de maneira integrada com o código fornecido.
int main() {
    setlocale(LC_ALL,"Portuguese");
    string nomel , nome2;
    char simboll= 'x', simbol2 = 'о', mat [3][3] = {' ', ' ',' ',' ',' ',' ',' ',' ',' '};
    int cont=0, linha, coluna;
    cout<<"Informe o nome do primeire jogador: ";
    getline(cin, nomel);
    cout<<"Informe o nome do segundo jegador: ";
    getline(cin, nome2);
    cout << nomel << " joga com o " << simboll <<endl<< nome2 << " joga com \circ" << simbol2;
    Sleep(1000);
    while(cont<9) {
        imprimirmatriz( mat);
        cout<<"Faca sua jogada, escolha sua linha!";
        cin>>linha;
        cout<<"Faca sua jogada, escolha sua coluna!";
        cin>>coluna;
        if(mat[linha][coluna]== ' ' && linha<3 && coluna<3) {// xalida se, 0 lugax escolbidQ esta}disponive
            if (cont%2==0){// jodadas pares pador l, jogadas jwpares jogador2;
                mat[linha][coluna] = simboll;
            } else {
                mat[linha][coluna] = simbol2;
            }
            if(verificaVitoria(mat)) {
                if (cont%2==0){
                    cout<<nomel<<" yocê ganhou!!";
                    break;
                } else {
                    cout<<nome2<<" yocê ganhou!!";
                    break;
                }
            }
            cont++;//passa para p'roxima jogada
        }else {
            cout << "posicap invalida, digite novamente";
        }
    }//fim while
    cout << "fim";
    return 0;
}

Passo 1

O enunciado fornece um main que gerencia o fluxo do jogo da velha usando uma matriz char mat[3][3] e pede para completarmos duas funções:
  1. imprimirmatriz(char mat[3][3]) — exibir o tabuleiro na tela.
  2. verificaVitoria(char mat[3][3]) — testar se alguém venceu (três símbolos iguais em linha, coluna ou diagonal).
Vamos usar laços de repetição para percorrer a matriz, condicionais para montar o desenho do tabuleiro e checar as 8 possíveis linhas de vitória.

Passo 2

Para imprimirmatriz faremos:
– Um loop for em i de 0 a 2 para as linhas.
– Dentro, outro loop for em j de 0 a 2 para as colunas, imprimindo mat[i][j] e, se não for a última coluna, um separador " | ".
– Após cada linha, exceto a última, imprimimos uma linha de traços "\n—+—+—\n".
No fim damos um cout << endl;.

Passo 3

Para verificaVitoria testamos:
– Cada uma das 3 linhas: se mat[i][0] != ' ' e mat[i][0] == mat[i][1] == mat[i][2].
– Cada uma das 3 colunas: se mat[0][j] != ' ' e mat[0][j] == mat[1][j] == mat[2][j].
– As duas diagonais: se mat[0][0] != ' ' e mat[0][0] == mat[1][1] == mat[2][2]; e se mat[0][2] != ' ' e mat[0][2] == mat[1][1] == mat[2][0].
Se qualquer condição for verdadeira, retornamos true; caso contrário false.

Passo 4

Integrando com o main, basta colocar essas funções antes do main ou em um arquivo de cabeçalho, garantindo que a assinatura seja exatamente
void imprimirmatriz(char mat[3][3]);
bool verificaVitoria(char mat[3][3]);

Resposta

#include <iostream>
using namespace std;

void imprimirmatriz(char mat[3][3]) {
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            cout << mat[i][j];
            if (j < 2) cout << " | ";
        }
        cout << '\n';
        if (i < 2) cout << "—+—+—\n";
    }
    cout << endl;
}

bool verificaVitoria(char mat[3][3]) {
    // checa linhas
    for (int i = 0; i < 3; i++) {
        if (mat[i][0] != ' ' &&
            mat[i][0] == mat[i][1] &&
            mat[i][1] == mat[i][2]) {
            return true;
        }
    }
    // checa colunas
    for (int j = 0; j < 3; j++) {
        if (mat[0][j] != ' ' &&
            mat[0][j] == mat[1][j] &&
            mat[1][j] == mat[2][j]) {
            return true;
        }
    }
    // checa diagonal principal
    if (mat[0][0] != ' ' &&
        mat[0][0] == mat[1][1] &&
        mat[1][1] == mat[2][2]) {
        return true;
    }
    // checa diagonal secundária
    if (mat[0][2] != ' ' &&
        mat[0][2] == mat[1][1] &&
        mat[1][1] == mat[2][0]) {
        return true;
    }
    return false;
}
Por fim, basta manter seu main conforme fornecido para que o jogo funcione corretamente.

Exercícios relacionados