Pętla while i warunke logiczny

0

Witam

W dalszym ciągu próbuję stworzyć grę w kółko i krzyżyk (lub raczej jej odmianę) i pojawił się pewien znaczny, chociaż prosty problem.

printf("Teraz gracz X. Nacisnij X, aby wrzucić pionka.\n\n");
	while(getchar()!='x'&&getchar()!='X'){			

		printf("Nie ten klawisz matole!!!!\n");
	}
		while(getchar()!='\n');
		printf("\n\n\n");
		losx();
	wypplan();
	wynik();
	printf("\n\nTeraz gracz O. Nacisnij O, aby wrzucic pionka.\n\n");
	while((getchar()!='o')&&(getchar()!='O')){
		printf("Nie ten klawisz matole!!!!\n");
	}
	while(getchar()!='\n');
	printf("\n\n\n");
		loso();
	wypplan();
	wynik();

Gdy wciskam małe x, normalnie idzie tak jak miało iść, ale gdy próbuje wcisnac duże X to nie wiem dlaczego wchodzi mi do pętli i wywala komunikat że nie ten znak.

O co w tym chodzi? Jakieś pomysły?

0

Tylko zgaduje, ale czy do wpisania duzego 'X' nie wciskasz dwoch znakow z czego ten pierwszy nie jest 'x'?
Nie, to nie to.
Problem jest nastepujacy:
Do sprawdzenia warunku petli potrzebne sa dwa znaki, jesli zamienisz warunek kolejnoscia w sensie: getchar()!='X' && getchar()!='x' wtedy nie bedzie dzialac maly 'x'.
Rozwiazanie:
Pobrany znak zapisz w zmiennej i w warunku petli wykonuj porownania na tej zmiennej.

0

Ej, to jest niezły pomysł :d
Proste rzeczy na które czasem człowiek nie wpada <lol>

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