معتصم بكري
03-06-2008, 01:43 PM
السلام عليكم هذه لعبة x-o طبعاً أنا سويتا حسب مصرنا أخدين في المعهد و أرجو من الطلاب أن يفهموها ويستفادوا منها
#include<iostream>
using namespace std;
#include<conio.h>
bool readplayer(char num[][3],short player);
void drawing(char num[][3]);
bool search(char num[][3]);
bool nowinner(char num[][3]);
//------------------------------------------------------------------------------
void main()
{
char countinue;
char num[3][3]={ {'7','8','9'} , {'4','5','6',} , {'1','2','3'} };
do
{
bool resu=0;
char num[3][3]={ {'7','8','9'} , {'4','5','6',} , {'1','2','3'} };
while(1<2)
{
resu=readplayer(num,1);
if(resu==1)
{
cout<<"The Winner is O"<<endl;
break;
}
if(nowinner(num)==1)
{
cout<<" N O W I N N E R "<<endl;
cout<<"to play again press y else n"<<endl;
countinue=cin.get();
break;
}
resu=readplayer(num,2);
if(resu==1)
{
cout<<"The Winner is X"<<endl;
break;
}
}
}while(countinue == 'y' || countinue== 'Y');
}
//---------------------------------------------------------------------------------
bool readplayer(char num[3][3],short player)
{
drawing(num);
char test;
bool resu=0;
bool store=0;
while(store==0)
{
test=getch();
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
if(num[i][j]==test)
{
if(player==1)
num[i][j]='O';
else if(player==2)
num[i][j]='X';
store=1;
}
}
drawing(num);
resu=search(num);
return resu;
}
void drawing(char num[][3])
{
system("cls");
cout<<"\n\n\n"<<endl;
cout<<"\t\t\t"<<(char)197<<(char)196<<(char)197<<(char)196<<(char)197<<(char)196<<(char)197<<endl;
cout<<"\t\t\t"<<(char)179<<num[0][0]<<(char)179<<num[0][1]<<(char)179<<num[0][2]<<(char)179<<endl;
cout<<"\t\t\t"<<(char)197<<(char)196<<(char)197<<(char)196<<(char)197<<(char)196<<(char)197<<endl;
cout<<"\t\t\t"<<(char)179<<num[1][0]<<(char)179<<num[1][1]<<(char)179<<num[1][2]<<(char)179<<endl;
cout<<"\t\t\t"<<(char)197<<(char)196<<(char)197<<(char)196<<(char)197<<(char)196<<(char)197<<endl;
cout<<"\t\t\t"<<(char)179<<num[2][0]<<(char)179<<num[2][1]<<(char)179<<num[2][2]<<(char)179<<endl;
cout<<"\t\t\t"<<(char)197<<(char)196<<(char)197<<(char)196<<(char)197<<(char)196<<(char)197<<endl;
}
bool search(char num[][3])
{
bool result=0;
if(num[0][0] == num[0][1] && num[0][1]==num[0][2] || num[1][0] == num[1][1] && num[1][1]==num[1][2] || num[2][0] == num[2][1] && num[2][1]==num[2][2])
result=1;
else if(num[0][0] == num[1][0] && num[1][0]==num[2][0] || num[0][1] == num[1][1] && num[1][1]==num[2][1] || num[0][2] == num[1][2] && num[1][2]==num[2][2])
result=1;
else if( (num[0][0] == num[1][1] && num[1][1]==num[2][2]) || (num[0][2] == num[1][1] && num[1][1]==num[2][0]) )
result=1;
if(result==1)
return 1;
return 0;
}
bool nowinner(char num[][3])
{
int test=0;
for(int i=0 ; i<3 ; i++)
for(int x=0 ; x<3 ; x++)
if(num[i][x]=='X' || num[i][x]=='O' )
test++;
if(test==9)
return 1;
return 0;
}
#include<iostream>
using namespace std;
#include<conio.h>
bool readplayer(char num[][3],short player);
void drawing(char num[][3]);
bool search(char num[][3]);
bool nowinner(char num[][3]);
//------------------------------------------------------------------------------
void main()
{
char countinue;
char num[3][3]={ {'7','8','9'} , {'4','5','6',} , {'1','2','3'} };
do
{
bool resu=0;
char num[3][3]={ {'7','8','9'} , {'4','5','6',} , {'1','2','3'} };
while(1<2)
{
resu=readplayer(num,1);
if(resu==1)
{
cout<<"The Winner is O"<<endl;
break;
}
if(nowinner(num)==1)
{
cout<<" N O W I N N E R "<<endl;
cout<<"to play again press y else n"<<endl;
countinue=cin.get();
break;
}
resu=readplayer(num,2);
if(resu==1)
{
cout<<"The Winner is X"<<endl;
break;
}
}
}while(countinue == 'y' || countinue== 'Y');
}
//---------------------------------------------------------------------------------
bool readplayer(char num[3][3],short player)
{
drawing(num);
char test;
bool resu=0;
bool store=0;
while(store==0)
{
test=getch();
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
if(num[i][j]==test)
{
if(player==1)
num[i][j]='O';
else if(player==2)
num[i][j]='X';
store=1;
}
}
drawing(num);
resu=search(num);
return resu;
}
void drawing(char num[][3])
{
system("cls");
cout<<"\n\n\n"<<endl;
cout<<"\t\t\t"<<(char)197<<(char)196<<(char)197<<(char)196<<(char)197<<(char)196<<(char)197<<endl;
cout<<"\t\t\t"<<(char)179<<num[0][0]<<(char)179<<num[0][1]<<(char)179<<num[0][2]<<(char)179<<endl;
cout<<"\t\t\t"<<(char)197<<(char)196<<(char)197<<(char)196<<(char)197<<(char)196<<(char)197<<endl;
cout<<"\t\t\t"<<(char)179<<num[1][0]<<(char)179<<num[1][1]<<(char)179<<num[1][2]<<(char)179<<endl;
cout<<"\t\t\t"<<(char)197<<(char)196<<(char)197<<(char)196<<(char)197<<(char)196<<(char)197<<endl;
cout<<"\t\t\t"<<(char)179<<num[2][0]<<(char)179<<num[2][1]<<(char)179<<num[2][2]<<(char)179<<endl;
cout<<"\t\t\t"<<(char)197<<(char)196<<(char)197<<(char)196<<(char)197<<(char)196<<(char)197<<endl;
}
bool search(char num[][3])
{
bool result=0;
if(num[0][0] == num[0][1] && num[0][1]==num[0][2] || num[1][0] == num[1][1] && num[1][1]==num[1][2] || num[2][0] == num[2][1] && num[2][1]==num[2][2])
result=1;
else if(num[0][0] == num[1][0] && num[1][0]==num[2][0] || num[0][1] == num[1][1] && num[1][1]==num[2][1] || num[0][2] == num[1][2] && num[1][2]==num[2][2])
result=1;
else if( (num[0][0] == num[1][1] && num[1][1]==num[2][2]) || (num[0][2] == num[1][1] && num[1][1]==num[2][0]) )
result=1;
if(result==1)
return 1;
return 0;
}
bool nowinner(char num[][3])
{
int test=0;
for(int i=0 ; i<3 ; i++)
for(int x=0 ; x<3 ; x++)
if(num[i][x]=='X' || num[i][x]=='O' )
test++;
if(test==9)
return 1;
return 0;
}