PDA

View Full Version : یه مشکل در Constructor



hossein2kk
سه شنبه 07 اردیبهشت 1389, 17:42 عصر
سلام دوستان .
من یه کلاس نوشتم برای بازی دوز به شرح زیر :

# include <iostream.h>
# include <conio.h>

class tictactoe {
int arr [3][3];
public :
tictactoe();
void input (int , int);
bool check(int);
int tour ;
};

// ***************************************
int main (){
tictactoe obj ;
int column , row ;
while (1){
cout << "Player " << ((obj.tour % 2 == 0) ? "A" : "B") << endl;
cout << "Row : " ;
cin >> row;
cout << "Column : " ;
cin >> column;
obj.input (row,column);
if (obj.check (1)){
cout << "Player A has been win !";
break;
}else if ( obj.check(2)){
cout << "Player B has been win !";
break;
}
}
getch();
return 0 ;
}

// ***************************************

tictactoe::tictactoe (){
arr = {0};
tour = 1 ;
}

// ***************************************
void tictactoe::input (int row , int column){
if (arr[row][column] == 0)
arr[row][column] = (tour % 2 == 0) ? 2 : 1;
else
cout << "invalid location" ;
}

// ***************************************
bool tictactoe::check (int num){
int i , j ;
for (i = 0 ; i < 3 ; i++){
bool flag = true;
for (j = 0 ; j < 3 ; j++ ){
if (arr[i][j]!= num)
flag = false;
}
if (flag)
return true ;
}
for (i = 0 ; i < 3 ; i++){
bool flag = true;
for (i = 0 ; j < 3 ; j++ ){
if (arr[j][i]!= num)
flag = false;
}
if (flag)
return true ;
}
bool flag = true;
for (int i = 0 ; i < 3 ; i++){
if (arr[i][i]!= num)
flag = false;
}
if (flag)
return true ;
return false ;
}

تنها مشکل این برنامه (فعلا) تو بخش Constructor هست زمانی که می خوام تمام عناصر آراهیه رو صفر کنم بهم syntax Error میده .
ممنون میشم راهنماییم کنید .

Salar Ashgi
سه شنبه 07 اردیبهشت 1389, 19:48 عصر
دوست عزیز شما نمیتونید به این شکل ، بعد تعریف آرایه بهش مقدار بدین ، این روش فقط در حین تعریف

آرایه امکان پذیره !

باید از حلقه استفاده کنین ؛

مقدار دهی حین تعریف آرایه :


int a[3][3]={0};


مقدار دهی بعد تعریف آرایه :


for(int i=0;i<3;i++){
for(int j=0;j<3;j++){
a[i][j] = 0;}
}


موفق باشید .