chaertl Geschrieben 17. Oktober 2002 Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 17. Oktober 2002 Teilen Geschrieben 17. Oktober 2002 Das hatten wir hier schon mal: http://fachinformatiker-world.de/forums/showthread.php?s=&threadid=12529 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
chaertl Geschrieben 17. Oktober 2002 Autor Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 17. Oktober 2002 Teilen 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; Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
chaertl Geschrieben 17. Oktober 2002 Autor Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Goos Geschrieben 17. Oktober 2002 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 17. Oktober 2002 Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Goos Geschrieben 17. Oktober 2002 Teilen Geschrieben 17. Oktober 2002 @Klotzkopp: hehehe...erster :OD Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 17. Oktober 2002 Teilen Geschrieben 17. Oktober 2002 Mift[tm]! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
chaertl Geschrieben 17. Oktober 2002 Autor Teilen Geschrieben 17. Oktober 2002 @ beide. Vielen dank für die Hilfe. Jetzt hab ich's geschnallt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.