Funktionen mit einer ID versehen



  • Nochmal:

    ich spiele zuerst einen zufälligen Ton ab aus meinem Vektor - in meinem Vektor befinden sich 24 Noten, also 0-23 zur Auswahl.

    Jetzt spiele ich zum ersten Mal einen Ton ab

    zufall = rand() % iMax;
    spieleNote(buchstabenVektor.at(zufall));
    

    jetzt möchte ich, dass der nächste Ton höher ist, als der schon gespielte - also muss ich dann die Ziehung eingrenzen - von der eben gezogenen Zahl bis zum Ende des Vektor.

    Wenn ich z.B. beim ersten Mal die 13 ziehe, will ich danach nur von 13 - 23 ziehen können. Von durchmischen hatte ich nie etwas erwähnt...

    Das Problem ist jetzt aber nur, dass er anscheinend außerhalb meines Vektors auch sucht, darum hatte ich es mit

    zufall = rand() % iMax + zufall;
    spieleNote(buchstabenVektor.at(zufall));
    

    probiert.

    Meiner Hoffnung nach wäre das, wenn wir beim Beispiel 13 bleiben:

    zufall = rand() % 23 + 13

    also zieht er jetzt von 13 - 23. Nur schmeißt er mir immer noch den Fehler (da hatte ich das Bild ja zu hochgeladen...)



  • Beispielrechnung:

    Zufallszahl 42:
    42%23=19
    19+13=32
    32 ist out of Range..



  • Danke...Manchmal hat man halt ein Brett vorm Kopp...^^

    Ja...klingt durchaus logisch was du da schreibst...^^

    Danke 😉

    int iMax = buchstabenVektor.size() - 1;
    
    	srand(static_cast<int>(time(NULL)));
    
    	zufall = rand() % iMax;
    
    	spieleNote(buchstabenVektor.at(zufall));
    
    	Sleep(1000);
    
    	zufall = rand() % (iMax - zufall) + zufall;
    
    	spieleNote(buchstabenVektor.at(zufall));
    

    funktioniert einwandfrei.


Anmelden zum Antworten