Cześć ! Mam problem z dokończeniem zadania. Jego treść brzmi następująco: Napisz prostą grę w odgadywanie hasła.Hasło powinno być przechowywane w tablicy, a użytkownik powinien je odgadywać .W przypadku trzech nie trafionych znaków z rzędu gra powinna zostać zakończona porażką.
Udało mi się napisać praktycznie całość - wszystko z wpisywaniem i "zgadywaniem działa". Problem pojawia się z dodaniem licznika błedów. Zgodnie z poleceniem po trzech nieudanych próbach program powinien kończyć działanie, u mnie wyglada to tak,że w przypadku jednorazowego wpisania litery,ktora nie zawiera się w haśle program kończy działanie. Natomiast jeśli wpisuje tylko litery zawarte w hasle - wszystko ok. Pytanie - Co robie źle - gdzie powinienem umieścić licznik ? Bardzo prosze o pomoc !
Kod:
#include <stdio.h>
#include <stdlib.h>
char haslo[7] = { 'p', 'r', 'o', 'g', 'r', 'a', 'm' }, pola[7] = { '_', '_', '_', '_', '_', '_', '_' }, n;
int i = 0, j = 0, k = 0, m = 0;
int wynik, index, licznik;
int main(void)
{
printf("\n Zgadnij haslo ! Aby to zrobic wprowadzaj dowolne litery z klawiatury!\nPowodzenia ! \n");
do {
n = getch();
for (i; i < 7; i++) {
if (n == haslo[i]) {
pola[i] = haslo[i];
licznik = 0;
}
else if (n != haslo[i]) {
licznik++;
}
}
wynik = 0;
for (index = 0; index < 7; ++index) {
if (haslo[index] == pola[index]) {
++wynik;
licznik = 0;
}
}
if (wynik == 7) {
printf(haslo);
printf("\n Gratuacje ! Zgadles!\n");
system("pause");
exit(0);
}
for (j; j < 7; j++)
printf("%c", pola[j]);
printf("\n");
j = 0;
i = 0;
} while (licznik < 3);
printf("\n\n");
system("PAUSE");
}