Gra w kółko i krzyżyk
#include<iostream> #include<string> using namespace std; int czy_zajete(char tab[4][4], int x, int y){ bool c=true; if(tab[y][x]!=' ')c=false; return c; } int remis(char tab[4][4]) { int f=0; for(int i=1;i<=3;i++){ for(int j=1;j<=3;j++){ if(tab[i][j]==' ')f++; } } return f; } int sprO(char tab[4][4],string gracz2){ bool k=false; while(1){ if(tab[1][1]=='O' && tab[1][2]=='O' && tab[1][3]=='O'){cout<<gracz2<<" wygrywa!"<<endl;k=true;break;} if(tab[2][1]=='O' && tab[2][2]=='O' && tab[2][3]=='O'){cout<<gracz2<<" wygrywa!"<<endl;k=true;break;} if(tab[3][1]=='O' && tab[3][2]=='O' && tab[3][3]=='O'){cout<<gracz2<<" wygrywa!"<<endl;k=true;break;} if(tab[3][1]=='O' && tab[2][1]=='O' && tab[1][1]=='O'){cout<<gracz2<<" wygrywa!"<<endl;k=true;break;} if(tab[1][2]=='O' && tab[2][2]=='O' && tab[3][2]=='O'){cout<<gracz2<<" wygrywa!"<<endl;k=true;break;} if(tab[1][3]=='O' && tab[2][3]=='O' && tab[3][3]=='O'){cout<<gracz2<<" wygrywa!"<<endl;k=true;break;} if(tab[1][1]=='O' && tab[2][2]=='O' && tab[3][3]=='O'){cout<<gracz2<<" wygrywa!"<<endl;k=true;break;} if(tab[3][1]=='O' && tab[2][2]=='O' && tab[1][3]=='O'){cout<<gracz2<<" wygrywa!"<<endl;k=true;break;} break; } return k; } int sprX(char tab[4][4],string gracz1){ bool k=false; while(1){ if(tab[1][1]=='X' && tab[1][2]=='X' && tab[1][3]=='X'){cout<<gracz1<<" wygrywa!"<<endl;k=true;break;} if(tab[2][1]=='X' && tab[2][2]=='X' && tab[2][3]=='X'){cout<<gracz1<<" wygrywa!"<<endl;k=true;break;} if(tab[3][1]=='X' && tab[3][2]=='X' && tab[3][3]=='X'){cout<<gracz1<<" wygrywa!"<<endl;k=true;break;} if(tab[3][1]=='X' && tab[2][1]=='X' && tab[1][1]=='X'){cout<<gracz1<<" wygrywa!"<<endl;k=true;break;} if(tab[1][2]=='X' && tab[2][2]=='X' && tab[3][2]=='X'){cout<<gracz1<<" wygrywa!"<<endl;k=true;break;} if(tab[1][3]=='X' && tab[2][3]=='X' && tab[3][3]=='X'){cout<<gracz1<<" wygrywa!"<<endl;k=true;break;} if(tab[1][1]=='X' && tab[2][2]=='X' && tab[3][3]=='X'){cout<<gracz1<<" wygrywa!"<<endl;k=true;break;} if(tab[3][1]=='X' && tab[2][2]=='X' && tab[1][3]=='X'){cout<<gracz1<<" wygrywa!"<<endl;k=true;break;} break; } return k; } void gra(char tab[4][4], string gracz1, string gracz2){ int x,y; while(1){ while(1){ cout<<gracz1<<" "; //gracz I cout<<"podaj wspolrzedne: "; cin>>x; cin>>y; if(czy_zajete(tab,x,y)==0)continue; if(x<1 || x>3 || y<1 || y>3)continue; else break; } tab[y][x]='X'; cout<<" 1 2 3"; for(int i=1;i<=3;i++){ cout<<endl; cout<<i; for(int j=1;j<=3;j++){ cout<<tab[i][j]<<"|"; } } cout<<endl<<endl; if(sprX(tab,gracz1)==1)break; // sprawdza czy gracz1 wygrał; // jesli nie to gramy dalej while(1){ cout<<gracz2<<" "; //gracz II cout<<"podaj wspolrzedne: "; cin>>x; cin>>y; if(czy_zajete(tab,x,y)==0)continue; //sprawdza czy pole nie jest juz zaznaczone if(x<1 || x>3 || y<1 || y>3)continue; else break; } tab[y][x]='O'; cout<<" 1 2 3"; for(int i=1;i<=3;i++){ cout<<endl; cout<<i; for(int j=1;j<=3;j++){ cout<<tab[i][j]<<"|"; } } cout<<endl<<endl; if(sprO(tab,gracz2)==1)break; // sprawdza czy gracz2 wygrał if(remis(tab)==0){cout<<"REMIS"<<endl;break;} // sprawdza czy remis continue; } } void plansza(char tab[4][4]){ string gracz1, gracz2; cout<<endl<<"Podaj imie 1 gracza: "; cin>>gracz1; while(1){ cout<<"Podaj imie 2 gracza: "; cin>>gracz2; if(gracz2==gracz1){ cout<<endl; cout<<"Imiona musza sie roznic!"<<endl<<endl; continue; }else break; } cout<<endl<<endl; cout<<" 1 2 3"; for(int i=1;i<=3;i++){ cout<<endl; cout<<i; for(int j=1;j<=3;j++){ tab[i][j]=' '; cout<<tab[i][j]<<"|"; } } cout<<endl<<endl; gra(tab,gracz1,gracz2); } int main() { char tab[4][4]; plansza(tab); system("pause"); return 0; }