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...


Log in to reply