【问题标题】:How can I random 3 different position in an 4x4 Array如何在 4x4 数组中随机选择 3 个不同的位置
【发布时间】:2018-06-17 11:33:17
【问题描述】:

我有一个任务是创建一个基于 4x4 阵列的 Dungeon Escape 游戏。我首先必须为 E(Exit)、K(Key) 和 P(Player) 创建 3 个不同的位置。如何随机排列数组中 3 个不同位置的 3 个? 编辑:我的意思是我需要找到一种以最简洁的方式随机 3 个不同位置的方法。我已经知道 rand() 和 srand 的事情了。

【问题讨论】:

  • 请在此处提问前做一些研究。你可以简单地用谷歌搜索这些东西并得到你的结果。
  • 您可以阅读 C++ 中的 rand 函数,并且当您使用数组时,您会知道数组的索引范围因此只需为数组值生成行和列的随机索引。

标签: c++ arrays random


【解决方案1】:

尝试使用rand函数生成随机数。

首先你需要用srand(time(NULL))初始化随机种子。

myRandomNum = rand() % 4; 生成 0 到 3 之间的数字。

因此,您可以生成两个表示行索引和列索引的数字,然后重复三次:E(exit)、K(key) 和 P(Player)。

【讨论】:

  • 从当前时间初始化种子是个坏主意,因为它每秒只更新一次。更干净的方法是使用C++11 random。
  • A) 你可能想要rand() % 4;,因为 OP 有 4x4 数组。 B) 你应该说一些关于确保你从rand() 获得的职位是不同的。
  • myRandomNum = rand() % 3;生成 0 到 3 之间的数字。是拼写错误还是概念错误,因为这只会给出 0 到 2 范围内的数字
  • 您应该使用 C++ <random> 标头中提供的东西,而不是使用过时和糟糕的 C 函数。
  • 等一下,我的意思是我需要找到一种方法来以最简洁的方式随机 3 个不同的位置。我已经知道 rand() 和 srand 的事情了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-22
  • 2018-03-24
  • 2013-10-14
  • 2021-02-24
相关资源
最近更新 更多