为 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;

最佳答案

如果您构建使用

for Runtime ("ada") use "ravenscar-full-microbit";

在您的项目或
--RTS=ravenscar-full-microbit

在命令行上,您将找到标准的 Ada RNG。

您也可以按照您的建议尝试使用 Ada Drivers Library 中的 NRF51_SVD.RNG ,这应该可以解决问题。

关于BBC MicroBit 上 Ada 的随机数生成器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53996085/

10-13 04:27