Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #include <windows.h>
- using namespace std;
- void ispisiPolje(char* p){
- for(int i = 0; i < 6; i++)
- {
- for(int j = 0; j < 7; j++)
- cout<<*(p+(i*7)+j)<<" ";
- cout<<endl;
- }
- }
- int unosBroja()
- {
- int unos;
- do
- {
- cin>>unos;
- } while(!(unos >= 0 && unos <= 6));
- return unos;
- }
- void ispustiZeton(int igrac, int unos, char *p)
- {
- system("CLS");
- char zeton;
- if(igrac == 0)
- zeton = 'C';
- else
- zeton = 'P';
- for(int i = 6; i >= 0; i--)
- {
- if(*(p + unos +(i*7)) == 'x' )
- {
- *(p + unos +(i*7)) = zeton;
- break;
- }
- }
- }
- int prebrojiSlobodnaMjesta(char* p)
- {
- int a = 0;
- for(int i = 0; i<6; i++)
- {
- for(int j = 0; j<7; j++)
- {
- if(*(p+(i*7)+j)=='x')
- a++;
- }
- }
- return a;
- }
- int provjeraPobjede(char *p)
- {
- for(int i = 0; i<6; i++)
- {
- for(int j = 0; j<7; j++)
- {
- //dijagonale
- if(*(p+(i*7)+j)=='C' && *(p+((i+1)*7)+(j+1)) =='C' && *(p+((i+2)*7)+(j+2))=='C' && *(p+((i+3)*7)+(j+3))=='C')
- {
- return 1;
- }
- else if(*(p+(i*7)+j)=='P' && *(p+((i+1)*7)+(j+1)) =='P' && *(p+((i+2)*7)+(j+2))=='P' && *(p+((i+3)*7)+(j+3))=='P')
- {
- return 2;
- }
- else if(*(p+(i*7)+j)=='C' && *(p+((i-1)*7)+(j+1))=='C' && *(p+((i-2)*7)+(j+2))=='C' && *(p+((i-3)*7)+(j+3))=='C')
- {
- return 1;
- }
- else if(*(p+(i*7)+j)=='P' && *(p+((i-1)*7)+(j+1))=='P' && *(p+((i-2)*7)+(j+2))=='P' && *(p+((i-3)*7)+(j+3))=='P')
- {
- return 2;
- }
- //vertikalno
- else if(*(p+(i*7)+j)=='C' && *(p+((i+1)*7)+j)=='C' && *(p+((i+2)*7)+j)=='C' && *(p+((i+3)*7)+j)=='C')
- {
- return 1;
- }
- else if(*(p+(i*7)+j)=='P' && *(p+((i+1)*7)+j)=='P' && *(p+((i+2)*7)+j)=='P' && *(p+((i+3)*7)+j)=='P')
- {
- return 2;
- }
- //horizontalno
- else if(*(p+(i*7)+j)=='C' && *(p+(i*7)+(j+1))=='C' && *(p+(i*7)+(j+2))=='C' && *(p+(i*7)+(j+3))=='C')
- {
- return 1;
- }
- else if(*(p+(i*7)+j)=='P' && *(p+(i*7)+(j+1))=='P' && *(p+(i*7)+(j+2))=='P' && *(p+(i*7)+(j+3))=='P')
- {
- return 2;
- }
- else if(prebrojiSlobodnaMjesta(p) == 0)
- {
- return -1;
- }
- }
- }
- }
- void provjera(char *p, bool* pKraj)
- {
- int a = provjeraPobjede(p);
- if(a == 1)
- {
- cout<<"Crveni pobjeduje"<<endl;
- *pKraj = true;
- }
- else if(a == 2)
- {
- cout<<"Plavi pobjeduje"<<endl;
- *pKraj = true;
- }
- else if(a == -1)
- {
- cout<<"Tabla je puna, nema pobjednika"<<endl;
- *pKraj = true;
- }
- }
- int main()
- {
- char polje[6][7];
- int kojiIgrac = 0;
- bool kraj = false;
- bool *pKraj = &kraj;
- for(int i=0;i<6;i++)
- {
- for(int j=0;j<7;j++)
- {
- polje[i][j] = 'x';
- }
- }
- while(!kraj)
- {
- ispisiPolje(&polje[0][0]);
- kojiIgrac = kojiIgrac % 2;
- if(kojiIgrac == 0)
- {
- cout<<"CRVENI"<<endl;
- }
- else
- {
- cout<<"PLAVI"<<endl;
- }
- ispustiZeton(kojiIgrac, unosBroja(), &polje[0][0]);
- provjera(&polje[0][0], pKraj);
- kojiIgrac++;
- }
- ispisiPolje(&polje[0][0]);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement