Usuário com melhor resposta
Corrigir erro programa

Pergunta
-
So identifica a letra errada no começo do jogo, se acerta e depois erra ele não conta.
#include<stdio.h> #include<string.h> #include<conio.h> #include<stdlib.h> int main() { char palavra[25],letra[25],lacuna[25]; int vida=6,x=0,i,total=0,cont=0; printf(" ******************************"); printf("\n JOGO DA FORCA \n"); printf(" ******************************\n"); printf("\n BOM JOGO\n\n"); printf("\nDIGITE A PALAVRA E TECLE ENTER PARA CONTINUAR"); printf("\n\nPALAVRA: "); gets(palavra); fflush(stdin); system("cls"); for(i=0;i<strlen(palavra);i++) { lacuna[i]='X'; total++; cont++; } while(vida>0) { printf("\nA PALAVRA COMTEM %i LETRAS\n",total); printf("\nLETRAS RESTANTES: %i\n",cont); printf("\n%s\n",lacuna); printf("\nENTRE COM UMA LETRA: "); gets(letra); system("cls"); for(i=0;i<strlen(palavra);i++) { if(letra[0]==palavra[i]) { lacuna[i]=palavra[i]; x++; cont--; } } if(cont==0){ printf("PARABENS! VOCE VENCEU!"); printf("\nACERTOU A PALAVRA %s", palavra); } if(x==0) { vida--; printf("\nVOCE PERDEU UMA VIDA!\nVOCE TEM %d VIDA(S) RESTANTES\n\n",vida); } } printf("\n\nVC FOI ENFORCADO, Fim de jogo!\n\n\nPALAVRA SECRETA: %s",palavra); printf("\n\n***********************\n\n"); printf("* JOGO DA FORCA *\n\n"); printf(" ___ \n"); printf(" | | \n"); printf(" | O \n"); printf(" |/|\ \n"); printf(" | | \n"); printf(" |/ \ \n"); printf(" |______ \n"); printf("\n**********************\n"); getchar(); getchar(); return 0; }
- Editado SouthNew sábado, 10 de junho de 2017 15:25
Respostas
-
Adaptado L : Um dia a tecnologia avançara tanto que ficara indistinguível da magia.
Original - Clarke: Qualquer tecnologia suficientemente avançada é indistinguível de magia.
Bem amigo SouthNew desculpe a demora mais ai esta a solução para seus problemas , estava trabalhando e nao pude ver esse seu problema logo mais bem ai esta, espero que te ajude,
sim o codigo foi totalmente refeito por min pega ai e adapta ao seu jeito.
a e também ajeita ai o código pq ta bagunçado
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
//A STRING PALAVRA E SOMENTE POR RECEBER O PRIMEIRO VALOR
//A STRING TENTATIVA E RESPONSAVEL POR RECEBER A LETRA
//A STRING RESERVA E A RESPONSAVEL POR CONTER A PÁLAVRA NA COMPARAÇÃO OU SEJA "A MAIS IMPORTANTE"
//A STRING OCULTA SERA USADA PARA MOSTRA NA INFORMAÇAO O ANDAMENTO DE ACERTOS DE LETRAS E NA COMPARAÇÃO
char palavra[10],tentativa[1],reserva[10],Oculta[10];;
//INT TAMANHO RESPONSAVEL POR CONTER O TAMANHO
//INT VIDA A VIDA
//INT COUNT RESPONSAVEL POR CONTAR OS ERROS
//INT COMPARA RESPONSAVEL PARA IDENTIFICAR SE O JOGADOR GANHOU
int tamanho,vida=5,count=0,compara=0;
//CONTADORES DO FOR
int i,j;
//LER A PALAVRA
printf("DIGITE UMA PALAVRA DE NO MAXIMO 10 LETRAS: ");
scanf("%s",&palavra);
//COMTAR A PALVRA
tamanho= strlen(palavra);
//INSERIR O X NO OCULTA E PASSA OS VALORES PARA A STRING RESERVA
for(i=0;i<tamanho;i++){
Oculta[i]='x';
reserva[i]=palavra[i];
}
//VERIFICAMOS A CONDIÇÃO FOI ATENDIDA
system("cls");
if(tamanho <10 && tamanho>0 ){
//ENTRAMOS NO JOGINHO
do{
//MOSTRAMOS AS INFORMAÇOES BASICAS
printf("A PALAVRA CONTEM %i LETRAS\n",tamanho);
for(i=0;i<tamanho;i++){
printf("%c",Oculta[i]);
}printf("\n");
printf("VOCE TEM %i VIDAS\n",vida);
//LER LETRAS DAS TENTATIVAS
printf("DIGITE UMA LETRA: ");
scanf("%s",&tentativa);
//FOR PARA PERCORRER AS STRING E LETRAS DIGAMOS ALGORITMO DE "BUSCA"
for(i=0;i<tamanho;i++){
//VEMOS SE A LETRA EXISTE NA STRING E SE NAO JA FOI ULTILIZADA
if(reserva[i] == tentativa[0] && Oculta[i]!=reserva[i]){
//ATRIBUIMOS O VALOR NA OCULTA PARA MOSTRA NAS INFORMAÇOES
Oculta[i]=tentativa[0];
//ADICIONAMOS O COMPARA
compara++;
}else{
//ADICIONAMOS O COUNT
count++;
}
}
//VERIFICAMOS SE A LETRA NAO EXISTE SE NAO REMOVEMOS UMA VIDA
if(count == tamanho){
vida--;
}
//TEMOS QUE ZERAR O CONTADOR PARA PODERMOS REMOVER VIDAS
count=0;
//VEMOS SE O COMPARADOR E IGUAL AO TAMANHO SE FOR DA BREAK E FIM DE JOGO
if(compara == tamanho){
break;
}
//LIMPAMOS A TELA
system("cls");
}while(vida>0);
//SE O JOGO ACABA E A VIDA FOR 0 VC PERDEU SE NAO VC GANHOU
if(vida == 0){
system("cls");
printf("VOCE PERDEU HAHAHAHAHAHA!\n");
}else{
system("cls");
printf("VOCE GANHOUUUU MIZERAVE!\n");
}
}else{
//CASO A CONDIÇÃO INICIAL DO TAMANHO DA PALAVRA NAO FOR ATENDIDA
printf("FAVOR DIGITA A PALAVRAS COM TOTAL DE CARACTERES PEDIDO");
}
return 0;
}- Editado L 2014 quarta-feira, 21 de junho de 2017 19:30
- Sugerido como Resposta L 2014 quarta-feira, 21 de junho de 2017 19:30
- Não Sugerido como Resposta L 2014 quarta-feira, 21 de junho de 2017 19:30
- Sugerido como Resposta L 2014 quarta-feira, 22 de janeiro de 2020 13:48
- Marcado como Resposta SouthNew quarta-feira, 11 de novembro de 2020 15:27
Todas as Respostas
-
Adaptado L : Um dia a tecnologia avançara tanto que ficara indistinguível da magia.
Original - Clarke: Qualquer tecnologia suficientemente avançada é indistinguível de magia.
Bem amigo SouthNew desculpe a demora mais ai esta a solução para seus problemas , estava trabalhando e nao pude ver esse seu problema logo mais bem ai esta, espero que te ajude,
sim o codigo foi totalmente refeito por min pega ai e adapta ao seu jeito.
a e também ajeita ai o código pq ta bagunçado
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
//A STRING PALAVRA E SOMENTE POR RECEBER O PRIMEIRO VALOR
//A STRING TENTATIVA E RESPONSAVEL POR RECEBER A LETRA
//A STRING RESERVA E A RESPONSAVEL POR CONTER A PÁLAVRA NA COMPARAÇÃO OU SEJA "A MAIS IMPORTANTE"
//A STRING OCULTA SERA USADA PARA MOSTRA NA INFORMAÇAO O ANDAMENTO DE ACERTOS DE LETRAS E NA COMPARAÇÃO
char palavra[10],tentativa[1],reserva[10],Oculta[10];;
//INT TAMANHO RESPONSAVEL POR CONTER O TAMANHO
//INT VIDA A VIDA
//INT COUNT RESPONSAVEL POR CONTAR OS ERROS
//INT COMPARA RESPONSAVEL PARA IDENTIFICAR SE O JOGADOR GANHOU
int tamanho,vida=5,count=0,compara=0;
//CONTADORES DO FOR
int i,j;
//LER A PALAVRA
printf("DIGITE UMA PALAVRA DE NO MAXIMO 10 LETRAS: ");
scanf("%s",&palavra);
//COMTAR A PALVRA
tamanho= strlen(palavra);
//INSERIR O X NO OCULTA E PASSA OS VALORES PARA A STRING RESERVA
for(i=0;i<tamanho;i++){
Oculta[i]='x';
reserva[i]=palavra[i];
}
//VERIFICAMOS A CONDIÇÃO FOI ATENDIDA
system("cls");
if(tamanho <10 && tamanho>0 ){
//ENTRAMOS NO JOGINHO
do{
//MOSTRAMOS AS INFORMAÇOES BASICAS
printf("A PALAVRA CONTEM %i LETRAS\n",tamanho);
for(i=0;i<tamanho;i++){
printf("%c",Oculta[i]);
}printf("\n");
printf("VOCE TEM %i VIDAS\n",vida);
//LER LETRAS DAS TENTATIVAS
printf("DIGITE UMA LETRA: ");
scanf("%s",&tentativa);
//FOR PARA PERCORRER AS STRING E LETRAS DIGAMOS ALGORITMO DE "BUSCA"
for(i=0;i<tamanho;i++){
//VEMOS SE A LETRA EXISTE NA STRING E SE NAO JA FOI ULTILIZADA
if(reserva[i] == tentativa[0] && Oculta[i]!=reserva[i]){
//ATRIBUIMOS O VALOR NA OCULTA PARA MOSTRA NAS INFORMAÇOES
Oculta[i]=tentativa[0];
//ADICIONAMOS O COMPARA
compara++;
}else{
//ADICIONAMOS O COUNT
count++;
}
}
//VERIFICAMOS SE A LETRA NAO EXISTE SE NAO REMOVEMOS UMA VIDA
if(count == tamanho){
vida--;
}
//TEMOS QUE ZERAR O CONTADOR PARA PODERMOS REMOVER VIDAS
count=0;
//VEMOS SE O COMPARADOR E IGUAL AO TAMANHO SE FOR DA BREAK E FIM DE JOGO
if(compara == tamanho){
break;
}
//LIMPAMOS A TELA
system("cls");
}while(vida>0);
//SE O JOGO ACABA E A VIDA FOR 0 VC PERDEU SE NAO VC GANHOU
if(vida == 0){
system("cls");
printf("VOCE PERDEU HAHAHAHAHAHA!\n");
}else{
system("cls");
printf("VOCE GANHOUUUU MIZERAVE!\n");
}
}else{
//CASO A CONDIÇÃO INICIAL DO TAMANHO DA PALAVRA NAO FOR ATENDIDA
printf("FAVOR DIGITA A PALAVRAS COM TOTAL DE CARACTERES PEDIDO");
}
return 0;
}- Editado L 2014 quarta-feira, 21 de junho de 2017 19:30
- Sugerido como Resposta L 2014 quarta-feira, 21 de junho de 2017 19:30
- Não Sugerido como Resposta L 2014 quarta-feira, 21 de junho de 2017 19:30
- Sugerido como Resposta L 2014 quarta-feira, 22 de janeiro de 2020 13:48
- Marcado como Resposta SouthNew quarta-feira, 11 de novembro de 2020 15:27
-