Ir para conteúdo
Fórum Script Brasil
  • 0

VETORES E MATRIZ


Hiago Pinazzi

Pergunta

BOA TARDE !

ESTOU CRIANDO UM JOGO DA VELHA SÓ QUE NÃO ESTOU CONSEGUINDO ENTENDER O USO DO VETOR E MATRIZ , POR EXEMPLO O USUÁRIO DIGITA A LINHA E A COLUNA beleza , COMO FAÇO PARA COLOCAR O X OU A BOLINHA EM DETERMINADA LINHA E COLUNA DA MINHA MATRIZ ?

#include <stdio.h>
#define dim 3
void tabuleiro(char vetores[dim][dim])
{
    printf("\t\t\t\t\t\t\t\t\t\t%c|%c|%c\n",vetores[0][0],vetores[0][1],vetores[0][2]);
    printf("\t\t\t\t\t\t\t\t\t\t-----\n");
    printf("\t\t\t\t\t\t\t\t\t\t%c|%c|%c\n",vetores[1][0],vetores[1][1],vetores[1][2]);
    printf("\t\t\t\t\t\t\t\t\t\t-----\n");
    printf("\t\t\t\t\t\t\t\t\t\t%c|%c|%c\n",vetores[2][0],vetores[2][1],vetores[2][2]);
}
int main()
{
    char vetores [dim][dim]={' ',' ',' ',' ',' ',' ',' ',' ',' '};
    tabuleiro(vetores);
}

POR EXEMPLO USUARIO DIGITA 0,0 OU SEJA LINHA 1 E COLUNA 1 COMO FAÇO PARA PREENCHER ESSA COORDENADA COM 'X' OU 'O'?

 

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Se supõe que deve ter a vez do jogador 1 e a vez do 2, dependendo da vez do jogador atual você comprova com um if. Vamos supor que jogador 1 é X,  e que jogador 2 é O, deveria ter uma variavel int player que inicializara com o valor de 1, e que passado a vez de um jogador deveria incrementar mas nunca passar de 2, se isso acontecer deve voltar ao valor de 1. Vamos ver na pratica.

#include <stdio.h>
#include <stdlib.h>
#define dim 3

typedef struct Cordenadas{
    int x;
    int y;    
}Ponto;

void tabuleiro(char vetores[dim][dim]){
    printf("\t\%c|%c|%c\n",vetores[0][0],vetores[0][1],vetores[0][2]);
    printf("\t-----\n");
    printf("\t%c|%c|%c\n",vetores[1][0],vetores[1][1],vetores[1][2]);
    printf("\t-----\n");
    printf("\t%c|%c|%c\n",vetores[2][0],vetores[2][1],vetores[2][2]);
}

int main(){
    char vetores [dim][dim]={{' ',' ',' '},{' ',' ',' '},{' ',' ',' '}};
    int sair = 0;
    int vencedor = 0;
    int player = 0; //Começa com player 1. Player1 = 0 e Player2 = 1;
    
    Ponto ponto;

    while ( sair != 1 ){//Por incuanto não tiver um vencedor continua rodando
        system("cls");
        tabuleiro(vetores);
        printf("É a vez do jogador %d. Escolha sua jogada.\n", (player == 0)? 1 : 2);
        printf("Linha?: "); scanf("%d%*c", &ponto.x);
        printf("Coluna?: "); scanf("%d%*c", &ponto.y);
        
        system("cls");
        printf("Escolheu a posicao %d%d.", ponto.x, ponto.y);
        
        vetores[ponto.x][ponto.y] = (player == 0)? 'X' : 'O'; //Si se tratar do player 0(player1) vai botar um X no mapa, caso contrario se trata do outro player, e neste caso bota um O. ;) Essa era sua duvida
        
        
        //Verificar aqui si tem vencedor...
        //Verificar se por exemplo aconteceu 3 X na linha1. linha0 == X X X
        if ( vetores[0][0] == 'X' && vetores[0][1] == 'X' && vetores[0][2] == 'X' ){
            sair = 1;
            vencedor = 0; //Vencedor player 1
        }
        //verificar os outros casos
        
        
        
        //Só incrementamos si NÃO há um vencedor. Vai nos servir para informar qual foi o vencedor no final, por isso não pode incrementar depois de ter um jogador vitorioso.
        if (sair != 1){
            player++;
            player = ((player)%2);    
        }
        
    }
    
    system("cls");
    //informar vencedor
    printf("O vencedor é o player %s", (vencedor == 0)? "PLAYER1" : "Player2" );

}

Tenta entender... e si tiver duvidas pergunte

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...