Hiago Pinazzi Postado Novembro 3, 2018 Denunciar Share Postado Novembro 3, 2018 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'? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vangodp Postado Novembro 4, 2018 Denunciar Share Postado Novembro 4, 2018 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Hiago Pinazzi Postado Novembro 4, 2018 Autor Denunciar Share Postado Novembro 4, 2018 Muito Obrigado !!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Hiago Pinazzi
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
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.