문제

자바, 파이썬, 루비 및 배쉬에서 '6면 다이를 시뮬레이션하는'(1과 6 사이의 임의의 정수를 생성하는 모든 결과는 똑같이 가능합니다)를 매우 확실하게 만났습니다. 그러나 나는 아직 ADA에서 비슷한 프로그램을 보지 못했습니다. 누구든지 하나가 있습니까?

도움이 되었습니까?

해결책

무작위 숫자 생성 (LRM A.5.2)이 작업을 지원하는 패키지. Ada.numerics.float_random 균일 랜덤 숫자 생성 (0.0 .. 1.0)을위한 ada.numerics.numerics.discrete_random (d4, d10, d12 용 작동 그리고 d20도!).

다른 팁

어린이의 시뮬레이션을 즐길 수 있습니다 카드 게임, 인스턴스를 사용합니다 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 컴파일 시스템의 필수 구성 요소입니다.

따라서 예, ADA에서 6면 다이를 아주 쉽게 시뮬레이션 할 수 있습니다.

rossetacode.org에는 일반적으로 이러한 종류의 일반적인 프로그램이 있습니다. 간단한 6면 주사위 구현을 찾을 수 있습니다 주사위 게임.

이들은 주사위 구현을위한 해당 프로그램의 관련 부분입니다.

유형에서 원하는 범위를 정의합니다.

type Dice_Score is range 1 .. 6;

유형과 함께 ada.numerics.discrete_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