2010-08-01 7 views
2

J'écris un jeu en C++. Le problème est avec les tableaux. Il montre toujours le «bureau» avec des points (parties vides). commentaires besoin sont dans le code:Travailler avec des tableaux

void showDesk(int someArray[][3]) 
{ 
    for(int i = 0; i < 3 ;i++) 
    { 
     for (int j = 0; j < 3; j++) 
     { 
      if(someArray [i][j] == 0)  cout << "."; 
      else if (someArray[i][j] == 1) cout << "x"; 
      else if (someArray[i][j] == 2) cout << "o"; 
     } 
     cout<<"\n"; 
    } 
} 

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

bool empty(int someArray[][3], int x, int y) 
{ 
    if (someArray[x][y] == 0) 
     return true;  // It returns true 
    else 
     return false; 
} 

void setMark(int someArray[][3],int x,int y,int mark) 
{ 
    if (empty(someArray,x,y)) 
     someArray [x][y] == mark; // But this never calls! 
} 

int main(int argc, char** argv) { 
    int x,y; 
    int mark; 

    int someArray [3][3]; 

    newDesk(someArray); 
    showDesk(someArray); 
    cout << "------------------\n"; 

    while (true) 
    { 
     cout<< "put x,y\n"; 
     cin >> x>>y; 

     cout << "put mark\n"; 
     cin >> mark; 

     setMark(someArray,x,y,mark); 
     showDesk(someArray); 
    } 
     return 0; 
} 
+0

Y at-il une raison pour laquelle vous n'utilisez pas 'std :: vector 'ou une structure contenant le tableau de sorte que vous pouvez suivre correctement les dimensions plus facilement? –

+0

@ james-mcnellis Il s'agit simplement d'apprendre des tableaux C++;) – Ockonal

+1

Ok; Je voulais juste être sur. –

Répondre

6

== est comparaison, = est l'affectation.

Votre ligne:

someArray [x][y] == mark; 

ne fait rien. Il devrait être:

someArray [x][y] = mark; 
+0

Ohh ... Je dois dormir pendant un moment :) Merci. – Ockonal

+1

@Ockonal: Il s'agit d'une source de bogues très répandue en C++ avant d'être utilisée à 100%, et même dans ce cas, cela arrive parfois. Juste un autre point poilu dans la langue. –

0

someArray [x][y] == mark teste le tableau pour voir si son égal à marquer, mais jamais réellement définit à quoi que ce soit ...