Java:2d阵列 - 制作它" torus"喜欢

时间:2015-06-07 21:34:48

标签: java computer-science

我正面临以下问题:

我有一块尺寸 M x N 方格的纸板。 在java中制作它的最佳方法是什么,当有给定的坐标超出界限(或带负值)时,它将从棋盘的另一侧返回方形?我正在寻找一些切割器使用数学。可能是模数运算符,但我希望它能用于负值。怎么做对了?

例如:

当M = N = 10时,

//Pseudocode of course
int[10][10] board

//Counting elements from 0, so 10 would normally generate array OOB exception
//I want it to work like this:
board[-1][10] == board[9][0]

1 个答案:

答案 0 :(得分:9)

您将使用模运算符。使用的通用公式(对于任意大的正/负整数)是:

hg prune -r <#rev of the copy>

不是用这些公式混淆代码,而是将它封装在一个函数中:

(n % SIZE + SIZE) % SIZE