我目前正在为Android学校开发一款15益智游戏。可悲的是,我遇到了一个问题。
我需要重写这个等式来从中获取行和列而不是索引。看看代码和se你们是否可以帮助我!
这需要一行和一列并返回一个相应的索引。
int index = 4 * (row - 1) + (column - 1);
但是,现在我想将索引转换为行和列。 所以有人知道如何反转这个等式,将一行和一列返回两个不同的整数。
感谢, 的Mikael
答案 0 :(得分:5)
试试这个:
row = index / 4 + 1;
column = (index % 4) + 1;
请注意,这个(以及原始公式)只适用于column < 5
(当然,它适用于15个拼图)。
答案 1 :(得分:1)
尝试将其绘制成阵列,看看是否可以找出模式。当您向下移动单元格或向右移动时,观察索引的作用。
请注意,下图中的索引是基于1的,但对于java数组,您需要基于0的索引。
答案 2 :(得分:0)
请看这个页面System of linear equations。在您的情况下,您有两个未知变量(行和列)和只有一个等式,因此您可能有多个行和列的解决方案(几个值)。请注意,在您的情况下,您还有关于行和列的值的约束,因为这些是数组索引。