为BBC Microbit开发一款小游戏。
with Ada.Numerics.Discrete_Random
报告"Ada.Numerics" is not a predefined library unit.
Ada是否提供另一种在BBC MicroBit上生成随机数的方法? arch / ARM / Nordic / svd / nrf51 / nrf51_svd-rng定义随机数生成器记录RNG_Peripheral。这是我要搜索的还是仅与蓝牙一起使用?
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;
答案 0 :(得分:2)
如果您使用
for Runtime ("ada") use "ravenscar-full-microbit";
在您的项目中或
--RTS=ravenscar-full-microbit
在命令行上,您将找到标准的Ada RNG。
您也可以按照您的建议尝试使用Ada Drivers Library中的NRF51_SVD.RNG
,这可以解决问题。
答案 1 :(得分:1)
如果有可用的浮点数,则可以使用{_ {3}}的U_Rand。
答案 2 :(得分:1)
PragmAda可重用组件中提供了许多RNG。也许其中之一适合您。