Kłopot z funkcja przeszukiwania planszy (if nie reaguje)

0

Cześć, mam problem, i nie mogę go rozwiązać. Najprawdopodobniej to jakaś literówka albo coś, ale mam prośbę czy ktoś z was mógłby zajrzeć w mój kod i pomóc? Funkcja działa, ale kiedy pocisk napotyka przeciwnika to znika, ale przeciwnik nie :/ chociaż powinien (wytłuszczony kod). Wszystkie zmienne istnieją, funkcje w mainie wywołuje. Kompilator nie zgłasza błędów ani flag. Programuje w Dev-C++. Jest to aplikacja konsolowa ;]

void missle_search()
{
	for(int i=0;i<25;i++)
	{
		for(int j=0;j<44;j++)
		{
			if (plansza[j][i]=='!')
			{
				//pocisk+=1;
				plansza[j][i]=32;
				//if (pocisk=1)
				//{
				
						
					if(i>0)
					{
						**if (plansza[j][i-1]==207)
						{
							plansza[j][i-1]=32;
							cout<<"\a";
							punkty+=10;
							continue;
							//pocisk-=1;
						}
						else **
						if(plansza[j][i-1]==178)
						{
							plansza[j][i-1]=176;
							cout<<"\a";
							continue;
							//pocisk-=1;
						}
						else if(plansza[j][i-1]==176)
						{
							plansza[j][i-1]=' ';
							cout<<"\a";
							continue;
							//pocisk-=1;
						}
						else if (plansza[j][i-1]==32)
						{
							plansza[j][i-1]='!';
							continue;
						}
					}
				//}
			}
		}
	}
}
 
0

Może przeciwnik jest za silny? Daj więcej szczegółów, czemu odpowiadają te numerki (207, 32 i inne)?
Jeżeli

if(plansza[j][i-1]==207) 

nie reaguje to znaczy, że plansza[j][i-1] nie jest równa 207 :)

0

Póki co problem zażegnany. Okazało się, że IF nie przyjmuje wartości znaku ASCII ani extASCII, bez uprzedzenia go o tym, że jest to znak typu char....
(e.g. else if(plansza[j][i-1]==**(char)**176) )

0

używasz debuggera? Takie błędy łatwo przez niego wychwycić.

0

nie wiem, mi:

char tab = 'a';
if(tab == 'a')

działa bez zarzutu.

0

Mówimy cały czas o wartościach klawiszy w ASCII, które trafiają do bufora klawiatury, nie o samych znakach w apostrofach ;] 'a' w ASCII to 97.

Mam za to inny problem. Wykorzystałem ten sam algorytm wyszukiwania dla pocisków pseudorandomowo wystrzeliwanych przez przeciwnika. Jednak funkcja nie śledzi pocisku w dół tablicy, ale w górę już tak! Bezsens...

0

for(int i=24;i>=0;--i)

0

próbowałem już przeszukiwać tablice z każdej strony, nie pomogło :/ zmiana warunków i pętli z for na while, pomogła częsciowo. nadal jest delikatny problem, z wyszukiwaniem przeciwników, ale jest grywalna. Temat do zamknięcia. Dzięki wszystkim za pomoc.

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