zufallszahl im 2d array
-
hi..
ich möchte ein spielfeld erzeugen und benutze dafür ein zweidimensionales array..int feld[3][3];
an jeder der 9 positionen soll entweder eine 1 oder eine 0 stehen..
ich habe das folgendermaßen versucht zu lösen:srand((unsigned)time(NULL)); for (int i=0; i<3; ++i){ for (int j=0; j<3; ++j){ feld[i][j]=(rand()%1)+1; cout<<feld[i][j]; } cout<<endl; }
was ist daran jetzt falsch? ich bekomme immer eine 1, an jeder position..
-
Du erzeugst auch nur Zufallszahlen von 1 bis 1..
Statt
feld[i][j]=(rand()%1)+1;
musst du
feld[i][j] = rand() % 2;
schreiben. Dadurch erhältst du dann entweder eine 1 oder eine 0.
Die Bedeutung der einzelnen Zahlen bei rand() kannst du dir ungefähr so vorstellen: rand() % <Anzahl der verschiedenen Zahlen> + <Kleinste mögliche Zahl>. Der Modulo-Operator (%) gibt den Rest einer Division zurück, bei einer Division durch 1 (wie in deinem Fall) kann also kein Rest übrig bleiben...