مشكل متد computerSet در اين برنامه زير چيه؟
سلام
من دارم برنامه ي دوز رو مي نويسم كه به يه مشكل بر خوردم كه اصلا نمي فهمم واسه ي چي هستش!!
در خط 147 در تابع main وقتي متد computerSet فراخواني ميشه برنامه به پايان ميرسه من نمي دونم چرا اينطوري ميشه كسي مي تونه كمكم كنه؟
کد:
#include <iostream>
#define EVER ;;
#define PART int i = 0;i <= 4;i++
using namespace std;
class Dooz
{
public:
Dooz();
~Dooz();
//functions->
void userSet(char);
void computerSet();
void disply();
private:
char* itsHome;
char itsUSet;
};
Dooz::Dooz():
itsUSet('\0')
{
itsHome = new char[9];
for(int i = 0;i < 9;i++)
itsHome[i] = (char) ((i+1) + '0');
}
Dooz::~Dooz()
{
delete [] itsHome;
itsUSet = '\0';
}
void Dooz::userSet(char set)
{
itsUSet = set;
int ISet = set - '0';
itsHome[ISet - 1] = 'U';
}
void Dooz::computerSet()
{
char Cs[3][3];
int a,b,test,ja,jb,k = 0;
//GHOTRHA
for(a = 0;a < 9;)
{
if(itsHome[a] == 'U')
++test;
a += 4;
}
if(test == 2)
{
for(b = 0;b < 9;)
{
if(itsHome[b] != 'U' && itsHome[b] != 'C')
{
itsHome[b] ='C';
return;
}
b += 4;
}
}
//********
test = 0;
for(a = 2;a < 7;)
{
if(itsHome[a] == 'U')
++test;
a += 2;
}
if(test == 2)
{
for(a = 2;a < 7;)
{
if(itsHome[a] != 'U' && itsHome[a] != 'C')
{
itsHome[a] = 'C';
return;
}
a += 2;
}
}
//SATRHA
for(a = 0;a < 3;a++)
for(b = 0;b < 3;b++,k++)
Cs[a][b] = itsHome[k];
for(a = 0;a < 3;a++)
for(b = test = 0;b < 3 || test <= 2;b++)
{
if(Cs[a][b] == 'U')
{
++test;
ja = a;
}
}
if(test == 2)
{
for(b = 0;b < 3;b++)
if(Cs[ja][b] != 'U' && Cs[ja][b] != 'C')
{
itsHome[(ja + 1)* b] = 'C';
return;
}
}
for(a = 0;a < 3;a++)
for(b = test = 0;b < 3 || test <= 2;b++)
{
if(Cs[b][a] == 'U')
{
++test;
jb = b;
}
}
if(test == 2)
{
for(a = 0;a < 3;a++)
if(Cs[a][jb] != 'U' && Cs[a][jb] != 'C')
{
itsHome[(jb + 1)* a] = 'C';
return;
}
}
}
void Dooz::disply()
{
int temp = 0;
for(int i = 0;i < 3;i++)
{
for(int j = 0;j < 3;j++)
{
cout <<itsHome[temp]<<"\t";
++temp;
}
cout <<"\n\n\n\n";
}
}
int main()
{
Dooz dooz;
//shorooe bazi
for(EVER)
{
system("cls");
dooz.disply();
cout <<"Enter a number to set:";
char choice;
cin>>choice;
cin.ignore();
dooz.userSet(choice);
dooz.computerSet();
cout <<endl<<endl;
}
return 0;
}