Pętla while i warunke logiczny

Pętla while i warunke logiczny
aaquillus
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 185
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.

Kopiuj
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?

n0name_l
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2412
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.

aaquillus
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 185
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.