// tic-tac-toe v1 // #include using namespace std; class tttPlayGround { private: int playground[3][3]; int prossimoG; int vincitore; int counter; const char icons[3]={' ','O','X'}; bool check(); public: tttPlayGround() { reset(); } void reset() { for(int i=0;i<3;i++) for(int j=0;j<3;j++) playground[i][j]=0; prossimoG=1; vincitore=0; counter=0; }; bool finita() { return (check() || counter==9); }; char prossimo() { return icons[prossimoG]; }; char vince() { return icons[vincitore]; } bool muovi(int i,int j); void show(); }; bool tttPlayGround::check() { int pr,pc,pd1=0,pd2=0; int v=0; for (int i=0;i<3;i++){ pr=pc=0; for (int j=0;j<3;j++){ if (playground[i][j]==1) pr+=1; if (playground[i][j]==2) pr+=10; if (playground[j][i]==1) pc+=1; if (playground[j][i]==2) pc+=10; } if (playground[i][i]==1) pd1+=1; if (playground[i][2-i]==1) pd2+=1; if (playground[i][i]==2) pd1+=10; if (playground[i][2-i]==2) pd2+=10; if ((pr==3)||(pc==3)||(pd1==3)||(pd2==3)) v=1; if ((pr==30)||(pc==30)||(pd1==30)||(pd2==30)) v=2; if (v>0) break; } vincitore=v; return v!=0; } void tttPlayGround::show() { int iconNumber=0; cout << "+---+"<> riga >> col; mossaOk=match.muovi(riga,col); if (!mossaOk) cout << "Mossa sbagliata!"<