使用2个字符随机化2D数组?

时间:2015-01-25 03:39:55

标签: c

您好Stack Overflow社区。我想知道如何在C中仅使用2个字符随机生成2D数组,条件是顶行,底行,第一列和最后一列是相同的字符,只有2个元素例外。我不需要演练,我只需要更清楚地了解如何实现这一目标。任何帮助,将不胜感激。

一个例子:

@#@@@@   
@#@@@@   
@##@@@  
@@#@@@

1 个答案:

答案 0 :(得分:1)

首先像这样生成中心:

for(i = 1; i < (row - 1); i++) {
  for(j = 1; j < (column - 1); j++) {
      // select random caracteres to this positions
  }
}

现在已经在边界留下了一个'数组'来随机。

你的数组长度是:2n + 2m - 4(n =行,m = collumns, - 4个常用索引)

现在生成两个随机位置并生成一个随机字符。

这两个职位必须是这个角色而其他职位必须是另一个角色。

示例:

[][][][]
[][][][]
[][][][]

完成中心:

[][][][]
[][@][#][]
[][][][]

长度阵列:(2 * 3 + 2 * 4) - 4 = 10

随机位置= 3和9

您可以使用时钟时间来制作索引:

[0][1][2][3]
[9][@][#][4]
[8][7][6][5]

postions的随机字符=“#”

[][][][#]
[#][@][#][]
[][][][]

完成订单字符。

[@][@][@][#]
[#][@][#][@]
[@][@][@][@]

当然,您需要在矩阵中实现时钟遍历。

希望这个帮助=)