Генератор случайных чисел для Ады на BBC MicroBit
Работаю над небольшой игрой для BBC Microbit.
with Ada.Numerics.Discrete_Random
отчеты "Ada.Numerics" is not a predefined library unit.
Предоставляет ли Ада другой способ генерирования случайных чисел на BBC MicroBit? arch/ARM/Nordic/svd/nrf51/nrf51_svd-rng определяет запись генератора случайных чисел RNG_Peripheral. Это то, что я ищу или используется только с Bluetooth?
GPS 2018 (20180528) hosted on x86_64-pc-linux-gnu
GNAT Community 2018 (20180524-73)
Active toolchain: arm-eabi
the GNAT Programming Studio
(c) 2001-2018 AdaCore
Мой код:
with Ada.Numerics.Discrete_Random;
package body Flip_A_Coin is
package Random_Coin is new Ada.Numerics.Discrete_Random(Coin);
G: Random_Coin.Generator;
------------------
-- Reset --
------------------
procedure Reset is
begin
Random_Coin.Reset(G);
end Reset;
------------------
-- Flip --
------------------
function Flip
return Coin is
begin
return Random_Coin.Random(G);
end Flip;
begin
Reset;
end Flip_A_Coin;
3 ответа
Если вы строите, используя
for Runtime ("ada") use "ravenscar-full-microbit";
в вашем проекте или
--RTS=ravenscar-full-microbit
в командной строке вы найдете стандартные Ада RNG.
Вы также можете попробовать, как вы предлагаете, используя NRF51_SVD.RNG
из библиотеки драйверов Ада, которая должна сделать свое дело.
Если у вас есть числа с плавающей точкой, вы можете использовать U_Rand available @ Mathpaqs.
В многократно используемых компонентах PragmAda имеется ряд ГСЧ. Может быть, один из них подойдет вам.