如何生成一定数量的数字并将它们随机分布在网格中?
How to generate a certain amount of numbers and spread them randomly across a grid?
我想生成数字 2 5 次和数字 1 10 次。我试图将它们随机分布在 Delphi 中的字符串网格中。我还想用 0 填充不是 1 或 2 的其余网格的。我什至不知道如何从这里开始。
看起来像这样(P 代表玩家,只有 5 个 2 和 10 个 1):https://gyazo.com/aeef05c3a92ce7847c0f42ad40faa733
给定一个尺寸为 m×n 的网格,创建一个长度为 m * n
的数组。数组中放入5个2和10个1,余数补0。 (我们假设 m 和 n 的乘积至少为 15。)随机排列数组。将打乱后的数组的每个元素复制到网格中的连续单元格中。
虽然 Robs 回答中所代表的方法可以完成工作,但我个人认为它的目的过于复杂。
那么更简单的方法是什么?
你的目标是将这些数字放在网格中的随机位置。
如何确定某个对象在网格中的位置?您可以通过其 X(列)和 Y(行)坐标来完成。
那么如何获得网格中的随机位置? Simple 为 X 和 Y 坐标选择了两个随机值。
至于放置数字1和数字2的某些数字使用两个简单的循环。
我想生成数字 2 5 次和数字 1 10 次。我试图将它们随机分布在 Delphi 中的字符串网格中。我还想用 0 填充不是 1 或 2 的其余网格的。我什至不知道如何从这里开始。
看起来像这样(P 代表玩家,只有 5 个 2 和 10 个 1):https://gyazo.com/aeef05c3a92ce7847c0f42ad40faa733
给定一个尺寸为 m×n 的网格,创建一个长度为 m * n
的数组。数组中放入5个2和10个1,余数补0。 (我们假设 m 和 n 的乘积至少为 15。)随机排列数组。将打乱后的数组的每个元素复制到网格中的连续单元格中。
虽然 Robs 回答中所代表的方法可以完成工作,但我个人认为它的目的过于复杂。
那么更简单的方法是什么?
你的目标是将这些数字放在网格中的随机位置。
如何确定某个对象在网格中的位置?您可以通过其 X(列)和 Y(行)坐标来完成。
那么如何获得网格中的随机位置? Simple 为 X 和 Y 坐标选择了两个随机值。
至于放置数字1和数字2的某些数字使用两个简单的循环。