chaertl Geschrieben 17. Oktober 2002 Geschrieben 17. Oktober 2002 Hallo Zusammen, fange gerade das Programmieren in C an und möchte ein Blackjack Spiel erstellen. Jetzt weiss ich nur nicht, wie ich bei der Funktion rand() festlege das er nur Zahlen aus einem bestimmten Wertebereich nimmt (zw. 2-11). Irgendwie klappt's noch nicht so recht und das Buch das ich habe verrät auch nicht allzuviel. Vielen Dank wenn mir jemand helfen könnte.
Klotzkopp Geschrieben 17. Oktober 2002 Geschrieben 17. Oktober 2002 Das hatten wir hier schon mal: http://fachinformatiker-world.de/forums/showthread.php?s=&threadid=12529
chaertl Geschrieben 17. Oktober 2002 Autor Geschrieben 17. Oktober 2002 Wer nur nicht richtig schlau draus. die streiten sich ja mehr als das dabei was rauskommt. Mir ist halt immer noch nicht klar wie ich das intervall festlegen kann, das er nur Zahlen zwischen 2 und 11 nimmt. Also die 1 soll da nicht rein. Vielleicht komm ich ja noch drauf.
Klotzkopp Geschrieben 17. Oktober 2002 Geschrieben 17. Oktober 2002 Original geschrieben von chaertl Wer nur nicht richtig schlau draus. die streiten sich ja mehr als das dabei was rauskommt. Ja, der wichtige Inhalt geht tatsächlich ein wenig unter . Mir ist halt immer noch nicht klar wie ich das intervall festlegen kann, das er nur Zahlen zwischen 2 und 11 nimmt. Also die 1 soll da nicht rein. Vielleicht komm ich ja noch drauf. Du nimmst den Wert, den rand liefert, modulo 10 und addierst 2: int zweibiself = rand() % 10 + 2;
chaertl Geschrieben 17. Oktober 2002 Autor Geschrieben 17. Oktober 2002 Vielen Dank für die Hilfe. kannst mir vielleicht nur noch das system dahinter etwas erläutern? Frage mich nämlich wie ich z.B. andere Intervalle setzten kann. das plus zwei ist wohl das erste intervall, aber mit der 10 hab ich so meine Probleme. die irritiert mich, denn ich weiß nicht wo da die elf steckt.
Goos Geschrieben 17. Oktober 2002 Geschrieben 17. Oktober 2002 Is ansich gar nicht schwer. Wenn du eine beliebige ganze Zahl durch x teilst, in diesem Fall durch 10, dann bleibt als Rest immer eine Zahl von 0 bis x-1, das waeren in dem Fall dann 0 bis 9. Somit hast du mit der 10 die Groesse des Intervalls festgelegt. Das +2 dient dann noch dazu das Intervall zu verschieben. Du willst kein 0 und 1, also verschiebst du um 2 und bekommst dann Zahlen von 0+2 bis 9+2, also 2 bis 11. Goos
Klotzkopp Geschrieben 17. Oktober 2002 Geschrieben 17. Oktober 2002 Allgemein lautet die Formel so: int zufallszahl = rand() % (max - min + 1) + min; Im Klartext: Von 2 bis 11 sind 10 mögliche Zahlen. Modulo 10 liefert 10 mögliche Ergebnisse, allerdings von 0 bis 9, also muss man noch zwei draufschlagen.
chaertl Geschrieben 17. Oktober 2002 Autor Geschrieben 17. Oktober 2002 @ beide. Vielen dank für die Hilfe. Jetzt hab ich's geschnallt.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden