Здравствуйте у меня есть проблема с проектом который я написал
Здравствуйте,я сделал какой-то небольшой проект под названием hangman game,это в основном программа, которая сравнивает вмененные харатеры с тем,что взято из списка,проблема в том,что когда я ввожу все слово,оно не подтверждает, что я выиграл, но оно продолжает просить больше вменить, можете ли вы сказать мне, как это исправить, оно написано на языке eclipse, c program language
вот этот код:
/* * Razvoni_Alati.c * * Created on: Dec 18, 2017 * Author: Smiley */ #include<stdio.h> #include<string.h> #include<stdlib.h> #include<time.h> #include <ctype.h> void vesala(int x) /**za pokzivanje vesala**/ { switch(x) { case 0: printf("\n\t||===== "); printf("\n\t|| | "); printf("\n\t|| %cO/",'\\'); printf("\n\t|| | "); printf("\n\t|| / %c",'\\'); printf("\n\t|| "); break; case 1: printf("\n\t||===== "); printf("\n\t|| | "); printf("\n\t|| %cO/",'\\'); printf("\n\t|| | "); printf("\n\t|| %c",'\\'); printf("\n\t|| "); break; case 2: printf("\n\t||===== "); printf("\n\t|| | "); printf("\n\t|| %cO/",'\\'); printf("\n\t|| | "); printf("\n\t|| "); printf("\n\t|| "); break; case 3: printf("\n\t||===== "); printf("\n\t|| | "); printf("\n\t|| %cO/",'\\'); printf("\n\t|| "); printf("\n\t|| "); printf("\n\t|| "); break; case 4: printf("\n\t||===== "); printf("\n\t|| | "); printf("\n\t|| %cO ",'\\'); printf("\n\t|| "); printf("\n\t|| "); printf("\n\t|| "); break; case 5: printf("\n\t||===== "); printf("\n\t|| | "); printf("\n\t|| O "); printf("\n\t|| "); printf("\n\t|| "); printf("\n\t|| "); break; } return; } int main() { setvbuf(stdout, NULL, _IONBF, 0); srand(time(NULL)); char Uneta_rec[100]; char pogodjena_slova[100]; int brojac_greske = 6 , brojac_pogodjenih = 0; int brojac = 0 , pozicija = 0, pobeda, duzina , i; char unet_karakter; char nasumicna_rec [10][20]; int ubacene_reci=0; FILE *lista_reci=fopen("Lista.txt","r"); if(lista_reci==NULL){ printf("failed to open the file"); return 0; } char input[20]; while(fgets(input,20,lista_reci)){ sscanf(input,"%s",nasumicna_rec[ubacene_reci]); printf("scannd:input:%s nasumicna_rec[%d]:%s\n",input,ubacene_reci,nasumicna_rec[ubacene_reci]); ubacene_reci++; } printf("Total words read in:%d\n",ubacene_reci); fclose(lista_reci); int nasumicni_broj= rand() % ubacene_reci; duzina = strlen(nasumicna_rec[nasumicni_broj]); for ( i = 0; i <9999; i++ ) { printf("\n");/**za pomeranje konzole na dole kako se ne bi videlo resenje(zadata rec)**/ } printf("\n\n Dobrodosli :D \n\n"); printf("\n\n Imate 5 pokusaja da pogodite zadatu rec"); printf("\n\n Pritisnite:Enter \n\n "); getchar(); printf("\n\t||===== "); /**prikaz vesala**/ printf("\n\t|| | "); printf("\n\t|| "); printf("\n\t|| "); printf("\n\t|| "); printf("\n\t|| "); printf("\n\n Zadata rec ima %d slova \n\n",duzina); /**za merenje duzine zadate reci,i obavestavanje igracu koliko zadata rec ima slova**/ for( i = 0; i < duzina ; i++) { pogodjena_slova[i] = '_'; pogodjena_slova[duzina] = '\0'; } for(i = 0 ; i < duzina ; i++) { printf(" "); printf("%c",pogodjena_slova[i]); /**za ispis n praznih crtica gde je n broj slova u zadatoj reci**/ } while(brojac_greske != 0) { brojac_pogodjenih = 0; printf("\n\n Unesite slovo od a-z!"); printf("\n\n\t Unesite ovde --> "); scanf("%c",&unet_karakter); if(toupper(unet_karakter) < 'A' || toupper(unet_karakter) > 'Z') /**ako igrac unese karakter koji ne ulazi u opseg od a-z,program trazi da se unese ponovo**/ { printf("\n\n\t Netacan karakter,pokusajte ponovo. "); brojac_pogodjenih = 2; } if (brojac_pogodjenih != 2) { for(brojac=0;brojac<duzina;brojac++) /**za proveru da li uneto slovo postoji u nizu zadate reci**/ { if(tolower(unet_karakter)==(nasumicna_rec[nasumicni_broj])[brojac]) { brojac_pogodjenih = 1; } } if(brojac_pogodjenih == 0) /**u slucaju pogresno pogodjenog slova**/ { printf("\n\n Imate jos %d pokusaja :( \n\n ",--brojac_greske); vesala(brojac_greske); } else { for(brojac = 0; brojac < duzina; brojac++) { brojac_pogodjenih = 0; if(tolower(unet_karakter) == (nasumicna_rec[nasumicni_broj])[brojac]) { pozicija = brojac ; brojac_pogodjenih = 1; } if(brojac_pogodjenih == 1) { for(i = 0 ; i < duzina ; i++) { if( i == pozicija) { pogodjena_slova[i] = tolower(unet_karakter); /**za stavljanje pogodjenog slova na pravo mesto**/ } else if( pogodjena_slova[i] >= 'a' && pogodjena_slova[i] <= 'z' ) /** ako pogodjeno slovo vec postoji na tom mesto ono se preskoci **/ { continue; } else { pogodjena_slova[i] = '_'; /** za stavaljenje donje crte na mestu ne pogodjenih slova **/ } } Uneta_rec[pozicija] = tolower(unet_karakter); /**za uporedjivanje unesenog slova i slova u zadatoj reci**/ pobeda = strcmp(Uneta_rec,nasumicna_rec[nasumicni_broj]); /**za uproredjivanje stringova**/ if(pobeda == 0) /**u slucaju da igrac pogodi svako slovo zadate reci**/ { printf("\n\n\n POBEDA!!!"); printf("\n\n\t zadata rec je bila : %s ",nasumicna_rec[nasumicni_broj]); printf("\n\n Preziveli ste!!\n\n"); getchar(); return 0; } } } } } printf("\n\n\t"); for(i = 0 ; i < duzina ; i++) { printf(" "); printf("%c",pogodjena_slova[i]); /**pokazuje prazna mesta zajedno sa tacno unetim slovima**/ } getchar(); } if(brojac_greske <= 0) /**u slucaju da igrac ne pogodi rec**/ { printf("\n\n\t Zadata rec je bila: %s ",nasumicna_rec[nasumicni_broj]); printf("\n\n\n Stavljeni ste na vesala :/ "); } getchar(); return 0; }
Что я уже пробовал:
Помогите pls :DD,нужно это для моей оценки