Ciao,
avrei una domanda abbastanza banale: voglio creare una stanza 5x5 i cui bordi vengano marcati come "muri". La stanza è un array di 25 oggetti appartenenti alla classe floor, che ha come attributo, fra gli altri, il booleano iswall. Ho scritto questo breve frammento:
compilo e mi esce questo:#include <iostream>
using namespace std;
class floor{
bool isdirty;
bool iswall;
public:
floor() { iswall = false; isdirty = false; }
void setwall() { iswall = true; }
void showall() { if(iswall) cout << " w "; }
};
int main(){
floor f[25];
int count=0;
int i;
int j;
cout << "\n\n";
for (i = 0; i < 5; i++) {
for (j = 0; j < 5; j++) {
if(i == 0 || i == 4 || j == 0 || j == 4) f[i*5+j].setwall();
}
}
for (i = 0; i < 25; i++) {
if(!(count % 5)) cout << "\n";
f[i].showall();
count++;
}
cout << "\n\n";
return 0;
}
w w w w w
w w
w w
w w
w w w w w
mentre invece dovrebbe essere così:
Perchè una cosa del genere? Come posso rimediare?codice:w w w w w w w w w w w w w w w w
Sifr