【发布时间】:2016-12-17 07:29:16
【问题描述】:
为了创建一个终极井字游戏,其中包括一个 9x9 阵列,该阵列分为九个 3x3 子阵列。
每个子数组按以下方式编号:
我想创建一个函数,例如,如果用户输入两个参数,它会转到 9x9 矩阵中的单元格,(或返回索引)。
例如,如果我输入 2,2:我进入第二个 3x3 矩阵,然后进入第二个单元格,这意味着我最终进入了 9x9 矩阵中的单元格 [0,4]。
我正在用 C 语言编写代码。 我最终得到的只是制作一个包含许多循环的大函数,将我直接带到想要的单元格,但我认为它太多了,我很乐意有一种更简单的方法来做到这一点。
有什么想法吗?
以下代码只是我所做工作的开始。 我将 9x9 矩阵分为三列,每次我根据用户为子数组选择的 1-9 的数字处理一列,然后从那里我转到每个子数组的一系列函数以找到合适的地方。太复杂太长了,这就是我的代码的问题。这就是我寻找替代方案的原因。
int Insert_Move(char player, char GameBoard[Lines][Columns], int chosen_pos,
int next_subboard)
{
if(next_subboard == 3 || next_subboard == 6 || next_subboard == 9)
return First_Column_9x9(player, GameBoard, chosen_pos, next_subboard);
if(next_subboard == 2 || next_subboard == 5 || next_subboard == 8)
return Second_Column_9x9(player, GameBoard, chosen_pos, next_subboard);
if(next_subboard == 1 || next_subboard == 4 || next_subboard == 7)
return Third_Column_9x9(player, GameBoard, chosen_pos, next_subboard);
return 1; /* Success */
}
【问题讨论】:
-
请发布您尝试过的代码并指出您遇到问题的地方。
-
a) 向我们展示您到目前为止所做的事情 b) 不是 C 专家,但我认为:使用 3x3 对象数组,每个对象都是 3x3array,然后我认为您可以访问 2 维数组作为向量,因此通过给出 2,2 你可以获得第二个(3x3 数组)对象,使用第二个数字 (2) 你将获得实际的单元格
-
我做到了。我正在寻找一个简单的算法,这只是数学,但无法掌握正确的公式。
标签: c