#include <stdio.h>
#include <stdlib.h>
int comparaString(char *s1, char *s2){
int res = 1;
for (int i = 0; i < strlen(s1); i++){
if (s1[i] != s2[i])
{
res = 0;
break;
}
}
return res;
}
void enforcado(int n){
switch (n)
{
case 0:
printf("|--|\n");
printf("| O \n");
printf("| /|\\ \n");
printf("| / \\\n");
printf("--------");
printf("\n");
break;
[...]
}
}
void colocarTracao (char *straco, int tam){
for (int i = 0; i < tam; i++){
straco[i] = '_';
if (i == (tam - 1)){
straco[i + 1] = '\0';
}
}
}
int chutar (char *secreta, char *jogador, char chute, int tam){
int acertou = 0;
for (int i = 0; i < tam; i++){
if(secreta[i] == chute){
jogador[i] = chute;
acertou = 1;
}
}
return acertou;
}
int main(){
char palavraSecreta[] = "MELANCIA";
char alfabeto[]= "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int tamPalavra = strlen(palavraSecreta);
int tamAlfabeto = strlen(alfabeto);
char *palavraJogador = malloc(sizeof(char) * tamPalavra + 1);
char *tentativasJogador = malloc(sizeof(char) * tamAlfabeto + 1);
colocarTracao(palavraJogador, tamPalavra);
colocarTracao(tentativasJogador, tamAlfabeto);
int tentativas = 6;
char chute;
int acertou = 0;
int venceu = 0;
enforcado(6);
while(tentativas > 0){
int repetido = 0;
printf("%s\n", palavraJogador);
printf("\nQual seu palpite? (%d tentativas) ", tentativas);
scanf("%c%*c", &chute);
int c = 0;
while(1){
for (int i = 0; i < 27; i++){
if (tentativasJogador[i]==chute){
repetido = 1;
break;
}
}
if (repetido == 0){
tentativasJogador[c] = chute;
c++;
break;
}else{
printf("\nPalpite repetido! Novo palpite? (%d tentativas) ", tentativas);
scanf("%c%*c", &chute);
printf("%c\n\n", chute);
}
}
acertou = chutar(palavraSecreta, palavraJogador, chute, tamPalavra);
if (comparaString(palavraJogador, palavraSecreta) == 1){
venceu=1;
break;
}
if(acertou){
acertou = 0;
printf("\nVOCE ACERTOU!\n\n");
enforcado(tentativas);
}else{
tentativas--;
printf("\nVOCE ERROU!\n\n");
enforcado(tentativas);
}
}
if (venceu == 1){
printf("\nPALAVRA SECRETA: %s", palavraSecreta);
printf("\n\nPARABENS, VOCE VENCEU!");
}else{
printf("\n\nVOCE PERDEU!");
printf("\nPALAVRA SECRETA: %s", palavraSecreta);
}
return 0;
}
O código está bem grande mas o meu problema específico está por aqui:
while(1){
for (int i = 0; i < 27; i++){
if (tentativasJogador[i]==chute){
repetido = 1;
break;
}
}
if (repetido == 0){
tentativasJogador[c] = chute;
c++;
break;
}else{
printf("\nPalpite repetido! Novo palpite? (%d tentativas) ", tentativas);
scanf("%c%*c", &chute);
printf("%c\n\n", chute);
}
}
Não sei exatamente qual está sendo o meu erro!