Witam wszystkich serdecznie,
Od dość niedawna zacząłem uczyć się programowania, swoją przygodę zacząłem z językiem c++, uczę się z książki "c++ przewodnik dla początkujących". W rozdziale z funkcjami miałem do napisania prostą grę w warcaby. Problem którego nie potrafię rozwiązać znajduję się w funkcji bicie.
void bicie(char plansza[][8],char wybor,int a, int b)
{
int ruch;
if(plansza[a-1][b-1]!=wybor ||plansza[a-1][b+1]!=wybor ||
plansza[a+1][b-1]!=wybor ||plansza[a+1][b+1]!=wybor )
{
if(plansza[a-2][b-2]==' ' ||plansza[a-2][b+2]==' ' ||
plansza[a+2][b-2]==' ' ||plansza[a+2][b+2]==' ' )
{
char tymczas_a,tymczas_b,tymczas_c,tymczas_d;
tymczas_a = plansza[a-2][b-2];
tymczas_b = plansza[a-2][b+2];
tymczas_c = plansza[a+2][b-2];
tymczas_d = plansza[a+2][b+2];
if(b>0 && b<7 && plansza[a-2][b-2]==' ' && plansza[a-1][b-1]!=wybor && plansza[a-1][b-1]!=' ')
{
plansza[a-2][b-2]='a';
}
if(b>0 && b<7 && plansza[a-2][b+2]==' ' && plansza[a-1][b+1]!=wybor && plansza[a-1][b+1]!=' ')
{
plansza[a-2][b+2]='b';
}
if(b>0 && b<7 && plansza[a+2][b-2]==' ' && plansza[a+1][b-1]!=wybor && plansza[a+1][b-1]!=' ')
{
plansza[a+2][b-2]='c';
}
if(b>0 && b<7 && plansza[a+2][b+2]==' ' && plansza[a+1][b+1]!=wybor && plansza[a+1][b+1]!=' ')
{
plansza[a+2][b+2]='d';
}
rysuj_plansze(plansza,wybor);
cout << "gdzie bicie? "<< endl;
//// oddaje tymczasowe ////////////////////
// plansza[a-2][b-2] = tymczas_a;
// plansza[a-2][b+2] = tymczas_b;
// plansza[a+2][b-2] = tymczas_c;
// plansza[a+2][b+2] = tymczas_d;
/////////////////////////////////////////////
}
}
W momencie gdy czerwony pionek ma możliwość zbicia białego jest wszystko w porządku, pojawia się wybór w które miejsca mogę przesunąć pionek, natomiast gdy tylko nadarzy się możliwość kiedy to biały pionek powinien mieć możliwość zbić pionek czerwony opcje wyboru nie pojawiają się na ekranie. Wydaje się to tak jakby biały pionek nie spełniał warunku który zaznacza na planszy możliwość wyboru, ale nie rozumiem dlaczego.
Oto link do całości https://pastebin.com/NReMAF8e. Z góry dziękuję za pomoc.