Wisielec w C

0

Witam. Napisałem grę w c, w której gramy w wisielca.
Problem leży w tym, że nie wiem jak zakończyć działanie programu jeśli użytkownik podał wszystkie literki prawidłowo.
Proszę o pomoc.

#include <stdio.h>
char a[12]={'k','o','n','k','a','t','e','n','a','c','j','a'}, b[12]={'_','_','_','_','_','_','_','_','_','_','_','_'}, n, c[15];
int i=0, j=0, k=0;

int main(void)
{
    do{
    n=getch(c);
    for(i; i<12; i++){
           if(n==a[i]) b[i]=a[i];
           }
    k++;
    for(j; j<12; j++) printf("%c", b[j]);
           printf("\n");
           j=0;
           i=0;
    //tutaj chyba trzeba zatrzymac jesli wpisano wszystkie literki prawidlowo
           }
    while(k<15);
    
printf("\n\n");
system("PAUSE");
}
0
  1. Niezdefiniowana funkcja system(). Jeśli chodziło Tobie o funkcję z stdlib.h to nie dołączyłeś tego nagłówka.
  2. Niezdefiniowana funkcja getch(). Jak już musisz mieć ją w programie, to dołącz nagłówek <conio.h>
  3. Getch() nie przyjmuje jednego argumentu. Zmień na:
n=getch();

Co do głównego problemu, to musisz sprawdzić czy tablica a równa się b. Jeśli tak, to możesz napisać komunikat w stylu Wygrałeś i zakończyć program używając funkcji exit() z stdlib.h:

exit(0);

Pzdr

0

Nie jest to chyba idealny sposób na napisanie wisielca Dużo możnaby poprawić... :/

Ale tobie chodzi chyba o to (sprawdzenie czy wszystkie literki się zgadzają w obu tablicach)

bool ok = true;
for(int l =0; l < 12; l++)
{
    if (a[l] == b[l]) ok &= true;
    else ok = false;
}
if (ok) //wszystko się zgadza.
// możesz dać break (kończy while) albo return (od razu kończy)

O to ci chodziło?

0
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
char a[12]={'k','o','n','k','a','t','e','n','a','c','j','a'}, b[12]={'_','_','_','_','_','_','_','_','_','_','_','_'}, n, c[15];
int i=0, j=0, k=0, m=0;

int main(void)
{
    do{
    n=getch();
    for(i; i<12; i++){
           if(n==a[i]) b[i]=a[i];
           if(a[0..11]==b[0..11]){
                                  printf("Wygrales!!!");
                                  exit(0);
                                  }
           }
    k++;
    for(j; j<12; j++) printf("%c", b[j]);
           printf("\n");
           j=0;
           i=0;
    //tutaj chyba trzeba zatrzymac jesli wpisano wszystkie literki prawidlowo
           }
    while(k<15);
    
printf("\n\n");
system("PAUSE");
}

zmieniłem i nie działa.. nie uruchamia się

0

To nie Pascal, tak się nie sprawdza tablic:

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
char a[12]={'k','o','n','k','a','t','e','n','a','c','j','a'}, b[12]={'_','_','_','_','_','_','_','_','_','_','_','_'}, n, c[15];
int i=0, j=0, k=0, m=0;
int wynik, index;

int main(void)
{
    do
	{
    n=getch();
    for(i; i<12; i++)
           if(n==a[i]) 
			   b[i]=a[i];

		   wynik=0;
          for(index=0; index<12; ++index)
		  {
			  if(a[index]==b[index])
				  ++wynik;
		  }
		  if(wynik==12)
		  {
			  printf("Wygrales!\n");
			  system("pause");
			  exit(0);
		  }
    k++;
    for(j; j<12; j++) 
		printf("%c", b[j]);
           printf("\n");
           j=0;
           i=0;
    //tutaj chyba trzeba zatrzymac jesli wpisano wszystkie literki prawidlowo
	}
    while(k<15);
   
printf("\n\n");
system("PAUSE");
} 
0

dzięki wielkie Fuv :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1