Frage von BotMaster3000, 29

C++: Wie definieren ob bei Ziel getroffen oder nicht?

Hallo,

eine weitere Frage zum Thema C++:

Ich bin gerade dabei zu lernzwecken einen kleinen Simulator zu erstellen, in dem ein Bogenschütze, der ein totaler Anfänger ist, ein totaler Profi werden will.

Ich habe vor, ihm ein Level und XP zu geben, das er mit Treffern um einen gewissen Wert erhöht der zusätzlich von einem weiteren, einem zufällig generierten Wert beeinflusst wird.

Dazu müsste ich aber auch erstmal wissen, wie ich definieren soll, das wenn er schießt, wann genau er trifft und wann nicht?

Es soll 11 Möglichkeiten geben:

Entweder er trifft eine Zahl zwischen 1-10, oder er trifft daneben.

Aber wenn ich jetzt eine zufällige Zahl generiere, die durch das Level und Zufall beeinflusst wird, wie sage ich dann dem Spiel, das er getroffen hat? Was sagt an dieser Zahl denn aus, das er getroffen hat? Wenn die Zahl z.B. höher als 50 ist hat er getroffen und wenn nicht dann nicht oder wie?

Ich kapiere das irgendwie nicht.. irgendein Denkfehler oder so.. .

Danke schonmal für die Hilfe.

MfG BotMaster3000

Antwort
von J0T4T4, 9

Hier mal ein kleiner Ansatz, bisher wird XP/Level noch nicht in die Berechnung des Treffers mit einbezogen. Den Rest kannst Du machen, sonst wäre es ja langweilig...

http://pastebin.com/B5x4gHrU

Antwort
von PerfectMuffin, 14

Zufallszahlen sind meistens  Fließkommazahlen zwischen 0(inklusive) und 1(exklusiv), sodass man durch Addieren und Multiplizieren den Wertebereich beliebig anpassen kann.

Kommentar von J0T4T4 ,

Alles schön und gut, aber in dem normalen rand() von C ist das nicht der Fall.

Kommentar von PerfectMuffin ,

Die Funktion ist Plattformabhängig... deshalb finde ich C/C++ auch so super toll...

Naja. Versuch's mit einem Modulo. Laut Internet ist der Wertebereich wenigstens bis 2^15-1

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten