0
私は16×16グリッドのオブジェクトを使用する2Dセルオートマトンを作成しています。オブジェクトは、グリッドを表す多次元配列に格納されます。次世代の値を計算するには、周囲のセルの状態をチェックする必要があります(オンまたはオフのいずれか)。チェックするセルがグリッドの端にある場合は、グリッドを囲むようにメソッドをラップしたいと考えています。Processing.Org:Modulo Issue
私は以下のメソッドを使用してこれを実行していますが、モジュロオペレータ:
// Scan neighbours, find out how many are active
int findNeighbours(int x, int y) {
int count = 0;
for(int i = -1; i<1; i++) {
for(int j = -1; j<1; j++) {
// Grid size is 16
int xPos = (x+i)%gridSize;
int yPos = (y+j)%gridSize;
// Check state
if(grid[xPos][yPos].on == true) {
count++;
}
}
}
return count++;
}
問題は、私が期待していること、である。その代わり
(-1) mod 16 = 15
、私が取得:
(-1) mod 16 = -1
範囲外のエラーが発生しました。
ここには何が起こっていますか?
http://www.google.de/search?gcx=w&sourceid=chrome&ie=UTF-8&q=google#sclient=psy-ab&hl=de&source=hp&q=-1+mod+16&pbx=1&oq=-1+mod + 16&aq = f&aqi =&aql =&gs_sm = e&gs_upl = 3395l4419l1l4825l2l2l010l010l201l267l1.0.1l2l0bav = on.2、または.r_gc.r_pw。、cf.osb&fp = 59859e79c7804486&biw = 1280&bih = 686 –
Javaではなく、確かに:http://www.velocityreviews .com/forums/t388345-mod-of-a-negative-number.html –