Ir ao conteúdo

LeGideon

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Tudo que LeGideon postou

  1. LeGideon

    C Tirar scanf do loop

    @arfneto Não conheco esse conceito, vou dar uma pesquisada, obrigado
  2. LeGideon

    C Tirar scanf do loop

    To pra fazer um trabalho pro final de periodo e to com uma duvida em relação a matrizes, no meu caso eu tenho que fazer um jogo da velha de matriz I x I mas como eu faço isso de maneira correta? Unico jeito que eu consegui de certa forma fazer foi botando esses scanf dentro das funções de iniciar e exibir, tabuleiro e checar o tab, porém essa de exibir está em um loop então apesar de "funcionar" o usuario teria que inputar o valor da matriz em cada laço de repetição, como posso resolver isso? #include <stdio.h> #include <stdlib.h> void menu(); void limpartela(){ system("CLS"); } void iniciatab(char tabuleiro[100][100]){ // Navega por cada posicao e coloca '-' int linha,coluna; int i; printf("Tamanho da Matriz: "); scanf("%d",&i); for(linha = 0; linha <i; linha ++){ for(coluna = 0; coluna<i; coluna++){ tabuleiro[linha][coluna] = '-'; } } return i; } void exibetab(char tabuleiro[100][100]){ // Exibe Tabuleiro na Tela int linha,coluna; int i; printf("Tamanho da Matriz: "); scanf("%d",&i); for(linha = 0; linha <i; linha ++){ for(coluna = 0; coluna<i; coluna++){ printf("%c",tabuleiro[linha][coluna]); } printf("\n"); } } int conferetabuleiro(char tabuleiro [100][100]){ int linha,coluna; int i; printf("Tamanho da Matriz: "); scanf("%d",&i); //Confere Linhas for(linha = 0; linha<i; linha++){ if(tabuleiro[linha][0] == 'X' && tabuleiro[linha][0] == tabuleiro[linha][1] && tabuleiro[linha][1] == tabuleiro[linha][2]){ return 1; }else if(tabuleiro[linha][0] == 'O' && tabuleiro[linha][0] == tabuleiro[linha][1] && tabuleiro[linha][1] == tabuleiro[linha][2]){ return 2; } } //Confere Colunas for(coluna = 0; coluna <i; coluna++){ if(tabuleiro[0][coluna] == 'X' && tabuleiro[0][coluna] == tabuleiro[1][coluna] && tabuleiro[1][coluna] == tabuleiro[2][coluna]){ return 1; }else if(tabuleiro[0][coluna] == 'O' && tabuleiro[0][coluna] == tabuleiro[1][coluna] && tabuleiro[1][coluna] == tabuleiro[2][coluna]){ return 2; } } //Conferir Diagonal Principal if(tabuleiro[0][0] != '-' && tabuleiro[0][0] == tabuleiro[1][1] && tabuleiro[1][1] == tabuleiro[2][2]){ if(tabuleiro[0][0 == 'X']){ return 1; }else{ return 2; } } // Conferir Diagonal Secundária if(tabuleiro[0][2] != '-' && tabuleiro[0][2] == tabuleiro[1][1] && tabuleiro[1][1] == tabuleiro[2][0]){ if(tabuleiro[0][2] == 'X'){ return 1; }else{ return 2; } } return 0; } int reset(){ int opcao; printf("Deseja Reiniciar o Jogo? "); printf("\n1- Reiniciar o Jogo"); printf("\n2- Sair do Jogo"); printf("\nEscolha: "); scanf("%d", &opcao); if (opcao == 1){ limpartela(); menu(); } } void jogo(){ char nome1[20]; // Nome Jogador 1 char nome2[20]; // Nome Jogador 2 char nomeatual[0]; // Nome de quem está jogando char tabuleiro[100][100]; int linha,coluna; int linhajogada,colunajogada; int partida = 1; // Situaçao da Partida int turno = 1; // Turno dos Jogadores int rodada = 0; // Numero de Vezes Jogadas int i; int ordem_da_matriz; printf("Digite o nome do Jogador 1: "); scanf("%s",nome1); printf("Digite o nome do Jogador 2: "); scanf("%s",nome2); iniciatab(tabuleiro); while (rodada < i && partida == 1){ limpartela(); exibetab(tabuleiro); printf("Rodada: %d\n", rodada); //Muda o nome conforme o turno if(turno == 1){ nomeatual == nome1; }else{ nomeatual == nome2; } //Le a Posição Desejada printf("%s, Escolha uma Linha: ", nomeatual); scanf("%d", &linhajogada); printf("%s, Escolha uma Coluna: ", nomeatual); scanf("%d", &colunajogada); if(turno == 1){ tabuleiro[linhajogada][colunajogada] = 'X'; turno = 2; }else{ tabuleiro[linhajogada][colunajogada] = 'O'; turno = 1; } if (conferetabuleiro(tabuleiro) == 1){ printf("\nO Jogador X Venceu\n"); partida = 0; }else if(conferetabuleiro(tabuleiro) == 2){ printf("\nO Jogador O Venceu\n"); partida = 0; } rodada++; } exibetab(tabuleiro); printf("Fim de jogo"); reset(); } void menu(){ int opcao; while (opcao < 1 || opcao > 2){ printf("Jogo da Velha"); printf("\n1 - Jogar"); printf("\n2 - Sair\n"); printf("Escolha uma Opcao: "); scanf("\n%d",&opcao); switch(opcao){ case 1: //printf("Teste"); jogo(); break; case 2: printf("JOGO FINAIZADO"); break; } } } int main(){ menu(); return 0; }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...