如何生成一定数量的数字并将它们随机分布在网格中?

How to generate a certain amount of numbers and spread them randomly across a grid?

我想生成数字 2 5 次和数字 1 10 次。我试图将它们随机分布在 Delphi 中的字符串网格中。我还想用 0 填充不是 12 的其余网格的。我什至不知道如何从这里开始。

看起来像这样(P 代表玩家,只有 5 个 2 和 10 个 1):https://gyazo.com/aeef05c3a92ce7847c0f42ad40faa733

给定一个尺寸为 m×n 的网格,创建一个长度为 m * n 的数组。数组中放入5个2和10个1,余数补0。 (我们假设 mn 的乘积至少为 15。)随机排列数组。将打乱后的数组的每个元素复制到网格中的连续单元格中。

虽然 Robs 回答中所代表的方法可以完成工作,但我个人认为它的目的过于复杂。

那么更简单的方法是什么?

你的目标是将这些数字放在网格中的随机位置。

如何确定某个对象在网格中的位置?您可以通过其 X(列)和 Y(行)坐标来完成。

那么如何获得网格中的随机位置? Simple 为 X 和 Y 坐标选择了两个随机值。

至于放置数字1和数字2的某些数字使用两个简单的循环。