Frage

Ich bin auf jeden Fall auf den 'Simulation eines 6-Gesichtigen-Simulations-Würfels' (die eine zufällige Ganzzahl zwischen 1 und 6 erzeugt, alle Ergebnisse sind gleichermaßen wahrscheinlich) in Java, Python, Ruby und Bash gestoßen. Ich muss jedoch noch ein ähnliches Programm in ADA sehen. Ist jemand auf einen gestoßen?

War es hilfreich?

Lösung

Siehe Zufallszahlengenerierung (LRM A.5.2) für Pakete, die dabei helfen. Entweder ada.numerics.float_random für eine gleichmäßige Zufallszahlengenerierung (Bereich 0.0 .. 1.0), die Sie dann selbst skalieren oder ada.numerics.discrete_random mit einem geeigneten (sub-) Typ (funktioniert für D4, D10, D12, und auch d20s!).

Andere Tipps

Sie könnten diese Simulation der Kinder genießen Kartenspiel des Krieges, was eine Instanz von verwendet Ada.Numerics.Discrete_Random.

subtype Card_Range is Positive range 1 .. 52;
package Any_Card is new Ada.Numerics.Discrete_Random(Card_Range);
G : Any_Card.Generator;
…
N : Card_Range := Any_Card.Random(G);

Bei ADA 95 wurde ein Zufallszahlengenerator als Teil der Standardbibliothek definiert, was es zu einer erforderlichen Komponente jedes ADA 95 -Kompilierungssystems machte.

Daher können Sie in ADA einen 6-Gesichter-Würfel leicht simulieren.

Rossetacode.org hat normalerweise solche typischen Programme. Sie finden eine einfache Altersumsetzung mit 6-und 6-Gesichtern in Schwein das Würfelspiel.

Dies sind die relevanten Teile dieses Programms für eine Würfelsimplementierung.

Sie definieren den gewünschten Bereich in einem Typ:

type Dice_Score is range 1 .. 6;

Instanziieren Sie ada.numerics.discrete_random mit Ihrem Typ:

with Ada.Numerics.Discrete_Random;

package RND is new Ada.Numerics.Discrete_Random(Dice_Score);

Verwenden Sie die Instanziierung, um einen zufälligen Wert im Bereich zu erhalten:

Gen: RND.Generator; 

P.Recent_Roll := RND.Random(Gen);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top