// dama classi.cpp : definisce il punto di ingresso dell'applicazione console.
//
#include "stdafx.h"
#include<iostream>
using namespace std;
#include <string>
class gioco
{
public:
int cub[8][8][1];
int o,v,i;
gioco()
{
o=0;
v=0;
i=0;
}
~gioco()
{
cout<<"sono il distruttore di gioco"<<endl;
}
};
class dama:public gioco
{
public:
virtual void vis();
virtual void ins1();
virtual void ins2();
virtual void win(bool,bool);
};
class giocatori:public dama
{
//vi metto le funzioni delle pedine del giocatore 1
virtual void azione();
//vi metto le funzioni del giocatore 2
virtual void azione2();
};
namespace matteo
{
int vet[3]={1,2};
bool space=false;
int k=0;
int m=1;
bool flag=false;
int x=0,y=0,n=0,sas=0,mat=0;
int am=1;
int ma,sa;//inizio del main()
int lk=0,as=0;
int g=0;
}
using namespace matteo;
int main()
{
int o=0,v=0,s=0,i=0,da=0,ga=0,ka=0,sg=0,fg=0,h=0,mm=0,man=0,cas=0;
//richiamo le varie funzioni delle classi eseguendo il gioco.
bool gagio;
bool fagio;
giocatori dan;
dan.ins1();
dan.ins2();
//fine inserimento pedine
dan.vis();
m=0;
fagio=false;
gagio=false;
do
{
dan.azione();
int man=0;
dan.vis();
//SECONDA PARTE DEL GIOCO FUNZIONI PER GIOCATORE 2
x=0,y=0,n=0,sas=0;
m=0;
dan.azione2();
dan.vis();
sas=0,cas=0,mat=0,man=0;
for(o=0;o<8;o++)
{
for(i=0;i<8;i++)
{
if(dan.cub[o][i][1]==2)
{
sas++;
}
else if(dan.cub[o][i][1]==15)
{
cas++;
}
}
}
for(o=0;o<8;o++)
{
for(i=0;i<8;i++)
{
if(dan.cub[o][i][1]==1)
{
mat++;
}
else if(dan.cub[o][i][1]==3)
{
man++;
}
}
}
if(sas==0)
{
if (cas==0)
{
fagio=true;
}
}
if(mat==0)
{
if(man==0)
{
gagio=true;
}
}
}
while((gagio==false)&&(fagio==false));
dan.win(gagio,fagio);
system("pause");
}
void giocatori::vis()
{
system("cls");//visualizzazione damiera
cout<<"giocatore 1 hai le pedine "<<(char)vet[0]<<endl;
cout<<"giocatore 2 hai le pedine "<<(char)vet[1]<<endl;
cout << endl<< " ";
cout << endl<< " 0 1 2 3 4 5 6 7 ";
for (v=0;v<8;v++)
{
cout <<endl << " |-|-|-|-|-|-|-|-|"<<endl;
if (v <=9) cout << "0" ;
cout << v <<"|";
for (o=0 ;o<8; o++)
{
if(cub[o][v][1]!=1&&cub[o][v][1]!=2)
{
cout << char(cub[o][v][1]) <<"|";
}
else
{
cout <<char(cub[o][v][1]) <<"|";
}
}
}
cout << endl<< " |-|-|-|-|-|-|-|-|-|-|"<<endl;
//fine visualizzazione damiera
}
void giocatori::ins1()
{
//inserimento
for(int i=0;i<1;i++)
{
for(int s=0;s<8;s=s+2)
{
cub[i][s][1]=1;
}
}
for(int i=1;i<2;i++)
{
for(int s=1;s<8;s=s+2)
{
cub[i][s][1]=1;
}
}
}
void dama::ins2()
{
for(int i=6;i<7;i++)//funzione visualizzA PER GLI 1
{
for(int s=0;s<8;s=s+2)
{
cub[i][s][1]=2;
}
}
for(int i=7;i<8;i++)
{
for(int s=1;s<8;s=s+2)
{
cub[i][s][1]=2;
}
}
}
void giocatori::azione()
{
int am,as,m,n,fg,sg;
do//mangia per i 2
{
m=0;n=0;
fg=0;sg=0;
cout<<"inserisci le coordinate della pedina uno che vuoi muovere!"<<endl;
cin>>m;
cin>>n;
cout<<"inserisci dove vuoi spostare!!"<<endl;
cin>>fg;
cin>>sg;
if(cub[m][n][1]==3)
{
if(cub[fg][sg][1]==2||cub[fg][sg][1]==15)
{
cout<<"dove vuoi andare dopo aver mangiato "<<endl;
cin>>am;
cin>>as;
space=true;
if(am==fg+1)
{
cub[fg][sg][1]=0;
cub[am][as][1]=3;
cub[m][n][1]=0;
}
if(am==fg-1)
{
cub[fg][sg][1]=0;
cub[am][as][1]=3;
cub[m][n][1]=0;
}
}
else if(cub[m][n][1]==3)
{
if(cub[fg][sg][1]==0)
{
cub[fg][sg][1]=3;
cub[m][n][1]=0;
}
}
}
if(cub[m][n][1]==1)
{
if(cub[fg][sg][1]==0)
{
if(fg==m+1)//leva
{
if(sg==n+1||sg==n-1)
{
if((cub[m+1][n+1][1]!=1)||(cub[m+1][n-1][1]!=1))
{
space=true;
cub[fg][sg][1]=1;
cub[m][n][1]=0;
}
}
}
}
else if(cub[fg][sg][1]==2)
{
cout<<"dove vuoi mangiare "<<endl;
cin>>am;
cin>>as;
space=true;
if(am==fg+1)
{
cub[fg][sg][1]=0;
cub[am][as][1]=1;
cub[m][n][1]=0;
}
else if(am==fg-1)
{
cub[fg][sg][1]=0;
cub[am][as][1]=1;
cub[m][n][1]=0;
}
}
}
//tutto ok fino a qui
cout<<"rinserire le coordinate del luogo in cui è stata spostata la pedina\n per verificare se è dama"<<endl;
cin>>fg;
cin>>sg;
if(cub[fg][sg][1]!=3)
{
if(fg==7)
{
space=true;
cub[m][n][1]=0;
cub[fg][sg][1]=3;
}
}
}
while (space==false);
}
void giocatori::azione2()
{
int am,as,m,n,fg,sg;
do//mangia per i 2
{
cout<<"inserisci le coordinate della pedina due che vuoi muovere!"<<endl;
cin>>m;
cin>>n;
cout<<"inserisci dove vuoi spostare!!"<<endl;
cin>>fg;
cin>>sg;
if(cub[m][n][1]==15)
{
if(cub[fg][sg][1]==1)
{
cout<<"dove vuoi mangiare "<<endl;
cin>>am;
cin>>as;
space=true;
if(am==fg+1)
{
cub[fg][sg][1]=0;
cub[am][as][1]=15;
cub[m][n][1]=0;
}
if(am==fg-1)
{
cub[fg][sg][1]=0;
cub[am][as][1]=15;
cub[m][n][1]=0;
}
}
if(cub[fg][sg][1]==3)
{
cout<<"dove vuoi mangiare "<<endl;
cin>>am;
cin>>as;
space=true;
if(am==fg+1)
{
cub[fg][sg][1]=0;
cub[am][as][1]=15;
cub[m][n][1]=0;
}
else if(am==fg-1)
{
cub[fg][sg][1]=0;
cub[am][as][1]=15;
cub[m][n][1]=0;
}
}
else if(cub[m][n][1]==15)
{
if(cub[fg][sg][1]==0)
{
cub[fg][sg][1]=15;
cub[m][n][1]=0;
}
}
}
if(cub[m][n][1]==2)
{
if(cub[fg][sg][1]==0)
{
if(fg==m-1)//leva
{
if(sg==n+1||sg==n-1)
{
if((cub[m-1][n+1][1]!=1)||(cub[m-1][n-1][1]!=1))
{
space=true;
cub[fg][sg][1]=2;
cub[m][n][1]=0;
}
}
else
{
cout<<"inserisci le coordinate x e y dove vuoi muovere!"<<endl;
scanf("%d %d",&x,&y);
}
}
}
else if(cub[fg][sg][1]==1)
{
cout<<"dove vuoi mangiare "<<endl;
cin>>am;
cin>>as;
space=true;
if(am==fg+1)
{
cub[fg][sg][1]=0;
cub[am][as][1]=2;
cub[m][n][1]=0;
}
else if(am==fg-1)
{
cub[fg][sg][1]=0;
cub[am][as][1]=2;
cub[m][n][1]=0;
}
}
}
//tutto ok fino a qui
cout<<"riinserire le coordinate del luogo in cui è stata spostata la pedina\n per verificare se è dama"<<endl;
cin>>fg;
cin>>sg;
if(cub[fg][sg][1]!=15)
{
if(fg==0)
{
space=true;
cub[m][n][1]=0;
cub[fg][sg][1]=15;
}
}
}
while (space==false);
}
void giocatori::win(bool gagio,bool fagio)
{
if(gagio==true)
{
cout<<"-------------------------------------------"<<endl;
cout<<"|ha vinto il giocatore due complimenti!!!!! |"<<endl;
cout<<"-------------------------------------------"<<endl;
}
else if(fagio==true)
{
cout<<"--------------------------------------------------"<<endl;
cout<<"| ha vinto il giocatore uno complimenti!!!!! |"<<endl;
cout<<"--------------------------------------------------"<<endl;
}
}