diff --git a/src/common/othello/core.ts b/src/common/othello/core.ts index e7e725aaf..3a181a3eb 100644 --- a/src/common/othello/core.ts +++ b/src/common/othello/core.ts @@ -224,10 +224,15 @@ export default class Othello { // 座標が指し示す位置がボード外に出たとき if (this.opts.loopedBoard) { - if (x < 0 ) x = this.mapWidth - (-x); - if (y < 0 ) y = this.mapHeight - (-y); - if (x >= this.mapWidth ) x = x - this.mapWidth; - if (y >= this.mapHeight) y = y - this.mapHeight; + if (x < 0 ) x = this.mapWidth - ((-x) % this.mapWidth); + if (y < 0 ) y = this.mapHeight - ((-y) % this.mapHeight); + if (x >= this.mapWidth ) x = x % this.mapWidth; + if (y >= this.mapHeight) y = y % this.mapHeight; + + // for debug + //if (x < 0 || y < 0 || x >= this.mapWidth || y >= this.mapHeight) { + // console.log(x, y); + //} // 一周して自分に帰ってきたら if (this.transformXyToPos(x, y) == initPos) break; diff --git a/src/common/othello/maps.ts b/src/common/othello/maps.ts index 3518259bb..81b9663c3 100644 --- a/src/common/othello/maps.ts +++ b/src/common/othello/maps.ts @@ -815,3 +815,22 @@ export const test2: Map = { '-w--b-' ] }; + +export const test3: Map = { + name: 'Test3', + category: 'Test', + data: [ + '-w-', + '--w', + 'w--', + '-w-', + '--w', + 'w--', + '-w-', + '--w', + 'w--', + '-w-', + '---', + 'b--', + ] +};