Ir ao conteúdo
  • Cadastre-se

zZsmithZz

Membro Júnior
  • Posts

    9
  • Cadastrado em

  • Última visita

Tudo que zZsmithZz postou

  1. @arfneto Tenho um pouco de dificuldade de buscar cosias um pouco mais antigas:'( Vou conferir. valeu @AdrianoSiqueira @Flávio PedrozaEu estava verificando isso mesmo é uma excelente ideia! Obrigado
  2. Olá pessoal, tudo bem com vocês? Bem, recentemente venho estudando linguagem de programação C e peguei uma atividade aparentemente simples para fazer um jogo da velha funcionar e depois otimizá-lo. Inicialmente, o código veio incompleto para que eu preenchesse as lacunas e com vários erros de sintaxe, então precisava consertar tudo e fazer o mesmo rodar; isso eu já fiz, porém, preciso agora otimizar o mesmo para que funcione melhor. Poderiam me dar uma força? #include <stdio.h> int main (void) { char Matriz[3][3]; //Declaração da matriz para o jogo char O = 'O', X = 'X'; int jogadas = 0, j, i; for (i = 0; i < 3; i++) //Inicialização da matriz do jogo for (j = 0; j < 3; j++) Matriz[i][ j] = ' ' ; while (jogadas <= 9) { printf (" JOGO DA VELHA \n"); for (i = 0; i < 3; i++) { printf ("\t\t %c | %c | %c\n",Matriz [i] [0], Matriz [i] [1], Matriz [i] [2]); if (i < 3-1) { printf ("\t\t ---+---+--- \n"); } } printf ("\nINSIRA AS COORDENADAS, "); if (jogadas % 2) printf ("JOGADOR 2\n"); else printf ("JOGADOR 1\n"); printf ("LINHA :"); scanf ("%d",&i); printf ("COLUNA: "); scanf ("%d",&j); //Parâmetros para entrada de dados da coluna if (Matriz [i-1] [j-1] == ' ') { if (jogadas%2) Matriz [i-1] [j-1] = X; else Matriz [i-1] [j-1] = O; jogadas++; } if ((Matriz[0][0]==O && Matriz[0][1]==O && Matriz[0][2]==O) || (Matriz[1][0]==O && Matriz[1][1]==O && Matriz[1][2]==O) || (Matriz[2][0]==O && Matriz[2][1]==O && Matriz[2][2]==O) || (Matriz[0][0]==O && Matriz[1][0]==O && Matriz[2][0]==O) || (Matriz[0][1]==O && Matriz[1][1]==O && Matriz[2][1]==O) || (Matriz[0][2]==O && Matriz[1][2]==O && Matriz[2][2]==O) || (Matriz[0][0]==O && Matriz[1][1]==O && Matriz[2][2]==O) || (Matriz[0][2]==O && Matriz[1][1]==O && Matriz[2][0]==O)) { printf("\n\a\t\tJogador 1, VOCÊ VENCEU!!!\n"); break; } if ((Matriz[0][0]==X && Matriz[0][1]==X && Matriz[0][2]==X) || (Matriz[1][0]==X && Matriz[1][1]==X && Matriz[1][2]==X) || (Matriz[2][0]==X && Matriz[2][1]==X && Matriz[2][2]==X) || (Matriz[0][0]==X && Matriz[1][0]==X && Matriz[2][0]==X) || (Matriz[0][1]==X && Matriz[1][1]==X && Matriz[2][1]==X) || (Matriz[0][2]==X && Matriz[1][2]==X && Matriz[2][2]==X) || (Matriz[0][0]==X && Matriz[1][1]==X && Matriz[2][2]==X) || (Matriz[0][2]==X && Matriz[1][1]==X && Matriz[2][0]==X)) { printf ("\n\n\n\n\a\t\tJogador 2, VOCÊ VENCEU!!!\n"); break; } if (jogadas==9) { // Condição para que a partida termine empatada printf ("PARTIDA EMPATADA"); break; } } return (0); }
  3. @arfneto Como lhe respondi no outro tópico, acabei me confundindo com o site em si e acabei não vendo o outro tópico! Eu fiz o ajuste que você indicou e funcionou melhor do que estava! Muito grato amigo
  4. @arfneto Cara, meu código no outro tópico estava basicamente assim, exceto por : rsrs Por isso eu estava confuso. Me desculpe a confusão, mas não havia visto esse outro tópico por ser novo aqui no forum e não ter entendido que havia postado um link na primeira TAB do outro tópico! Eu estava fazendo confusão devido a "fragilidade" do sistema postado e por está tentando achar uma solução para as letras que já foram digitas serem contadas como certas, coisa que entra na questão 2 da atividade, onde são propostas as melhorias para o programa!
  5. Poderia apenas postar esse programa que eu postei com as alterações de correção para os 2 erros que você disse para que eu entenda exatamente onde são? Eu complementei minha resposta para a questão 2 da atividade com as melhorias aqui discutidas, mas a minha dúvida é se o meu código está com algum erro, pois além das letras repetidas estarem sendo contadas como certas ( coisa que eu só poderia corrigir fazendo melhoria no programa nas partas onde não pediram para mexer), ele não exibe erros no funcionamento. Grato Apenas à partir desse ponto: //Aqui falta a parte responável pela verificação de vitoria ou derrota que foi pedido para alterar, daí não estou vendo erro
  6. @arfneto Não foi pedido para corrigir e sim, apenas completar! Por isso mandei o código no meu post anterior apenas com o que foi proposto! Suas respostas estão me confundindo porque está consertando o código, fazendo assim, o que foi proposto na atividade 2, que é onde sim é pedido as melhorias. ENUNCIADO: Questão 1: Completar as partes faltantes do código em linguagem C indicadas por lacunas e enviar o mesmo completo usando como base o código que vem ao final da atividade. É preciso completar o código com o ajuste do idioma, a condição de parada do laço de repetição principal do jogo e a verificação de vitória ou derrota do jogador 2. Questão 2: Citar ao menos duas melhorias que poderiam ser acrescentadas neste código de forma a tornar o software mais completo, robusto ou com uma interface mais agradável em forma textual apenas, não sendo necessário o envio do código relativo a estas melhorias. Assim, a entrega para esta atividade se baseia em um arquivo TXT de texto simples contendo o código de resposta da Questão 1, e suas considerações escritas para a questão 2 no mesmo arquivo a ser anexado como atividade. Isso não pode ser alterado na atividade 1 e sim pode ser citado como melhoria na atividade 2, pois como você mesmo disse : Aparentemente é proposital para que facilite para nós iniciantes. E sim, eu estou acompanhando toda a discussão! adicionado 3 minutos depois Lembrando que a questão 2 da atividade, não foi proposto o envio do código e sim uma explicação textual do que pode ser melhorado
  7. @Lucca Rodrigues #include <stdio.h> #include <string.h> #include <locale.h> // ---------- Aqui falta a biblioteca necessária para idioma - 0.1 int main() { char resposta[20]; int erros; int acertos; char letra; int i, j; int max; setlocale(LC_ALL,"Portuguese"); // --------- Aqui falta a definiçao de idioma - 0.1 ponto printf("************ Jogo da Forca ************\n"); printf("************** Jogador 1 **************\n\n"); printf("Utilize apenas letras minúsculas.\n"); printf("Máximo de 20 letras\n\n"); letra = ' '; max = 1; for (i = 1; i <= 20; i++) { resposta[i] = ' '; } erros = 0; acertos = 0; printf("Digite a palavra secreta: "); scanf (" %s", resposta); max = strlen (resposta); system("clear||cls"); printf("************ Jogo da Forca ************\n"); printf("************** Jogador 2 **************\n\n"); printf("Utilize apenas letras minúsculas.\n"); printf("Limite de 6 erros. Palavra de até 20 letras\n\n"); while ((erros < 6) && (acertos<max)) // Aqui falta a condição de parada do laço - 0,3 ponto { printf("Digite uma letra: "); scanf (" %c", &letra); j = 0; for (i = 0; i <= max; i++) { if (resposta[i] == letra) { acertos++; j++; printf ("\nAcertos: %d - Erros: %d\n",acertos, erros); } } if (j <= 0) erros++; } if (acertos == strlen(resposta)) //Aqui falta a parte responável pela verificação de vitoria ou derrota { printf ("\nPARABÉNS, VOCÊ VENCEU!\n"); } else printf ("\n VOCÊ PERDEU!!!\n"); //Final da Verificação return (0); } Vou entrar em contato com o professor sim! Mas seguindo o que foi pedido pela universidade, apenas fiz edição onde estão os comentários. Eu queria consertar essa questão de contar como acerto palavras repetidas =S A questão 2, pode utilizar qualquer coisa que foi comentado aqui na discussão
  8. @Lucca Rodrigues Sim, mas na questão 1, não há a necessidade de melhorar e sim fazer com que funcione! Até porque,como o @arfneto disse, parece ser fraco de propósito para facilitar um pouco a segunda questão! O primeiro erro que notei de cara, é que o programa não distingue acerto de palavras repetidas, mas não foi pedido para corrigir "isso" em questão
  9. Não entendo esses códigos soltos no tópico sendo que o enunciado pede apenas para completar! Estão acrescentando bibliotecas, variáveis KKKKK Não faz sentido

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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!