سؤال

لقد صادفت بشكل نهائي للغاية "محاكاة يموت 6 مواجهة" (والتي تنتج عدد صحيح عشوائي بين 1 و 6، جميع النتائج محتملة بنفس القدر) في جافا، بيثون، روبي وباش. ومع ذلك، أنا الآن لرؤية برنامج مماثل في ADA. لديه أي شخص يأتي عبر واحد؟

هل كانت مفيدة؟

المحلول

انظر توليد الأرقام العشوائية (LRM A.5.2.) للحزم للمساعدة في القيام بذلك. إما ada.numerics.float_random لتوليد الأرقام العشوائية العشوائية (نطاق 0.0 .. 1.0) يمكنك ذلك بعد ذلك، أو إنشاء مثيل لإرساء ada.numerics.discred_random مع نوع مناسب (يعمل ل D4، D10، D12، و d20s كذلك!).

نصائح أخرى

قد تستمتع بهذه المحاكاة للأطفال لعبة لعبة الحرب, ، والتي تستخدم مثيل 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);

مع ADA 95، تم تعريف مولد عدد عشوائي على أنه جزء من المكتبة القياسية مما يجعله مكونا مطلوبا لكل نظام تجميع ADA 95.

لذلك، نعم، يمكنك محاكاة يموت 6 مواجهته في ADA بسهولة تامة.

عادة ما يكون Rossetacode.org هذا النوع من البرامج النموذجية. يمكنك العثور على تطبيق النرد بسيطة من 6 مواجهة في خنزير لعبة النرد.

هذه هي الأجزاء ذات الصلة من هذا البرنامج لتنفيذ النرد.

تحدد النطاق المطلوب في النوع:

type Dice_Score is range 1 .. 6;

Instantiate Ada.numerics.discreter_random مع نوعك:

with Ada.Numerics.Discrete_Random;

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

استخدم إنشاء مثيل للحصول على قيمة عشوائية في النطاق:

Gen: RND.Generator; 

P.Recent_Roll := RND.Random(Gen);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top