Witam,
Od pewnego czasu pracuję nad grą kółko i krzyżyk. Teraz natrafiłem na problem z algorytmem sprawdzającym czy nastąpiła wygrana któregoś z graczy. Algorytm aktualnie ma za zadanie sprawdzanie skrajnej lewej kolumny planszy. Prosiłbym o przejrzenie kodu i podsunięcie jakichś wskazówek.
#include <iostream>
using namespace std;
char tab_temp[3][3] ={'0'};
bool odw[3][3] = {false};
int licz=0;
void sprawdzenie(int x, int y)
{
odw[x][y]=true;
licz++;
if (odw[x+1][y]==false && tab_temp[x+1][y]==tab_temp[x][y] && x+1<3 && x+1>0 ){
sprawdzenie(x+1, y);
}
}
int main()
{
char plansza[9]={'1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9'};
bool kol=true;
for ( ; ; )
{
int a;
for (int i=0; i<9; i++)
{
cout<<plansza[i];
if ( (i+1)%3==0) cout << endl;
}
cout<<"ruch gracza ";
if (kol==true) cout<<"kolko ";
else cout<<"krzyzyk ";
cout<<"wpisz numer pola: ";
for ( ; ; )
{
cin>>a;
if (a<0 || a>9){
cout<<"nie ma takiego pola spróbuj jeszcze raz"<<endl;
continue;
}
if (plansza[a-1] == 'O' || plansza[a-1] =='X')
{
cout<<"pole zajete wybierz inne ";
continue;
}
else{
if (kol == true) plansza[a-1]= 'O';
else plansza[a-1] = 'X';
break;
}
}
for (int i=0; i<3; i++) //trzy pętle przypisujące wartosci z planszy do tab_temp
{
tab_temp[0][i]=plansza[i];
}
for (int i=0; i<3; i++)
{
tab_temp[1][i]=plansza[i+3];
}
for (int i=0; i<3; i++)
{
tab_temp[2][i]=plansza[i+6];
}
sprawdzenie(0, 0);
if (licz == 3) cout<<"WYGRANA";
licz =0;
if (kol==false) kol = true;
else kol = false;
}
return 0;
getchar();
}