private void doReverseOpponentsInBetweenExclusive( Cursor cursorFrom, Cursor cursorTo, Direction direction) { Cursor cursor = cursorFrom.getCopy(); while (true) { cursor.moveIn(direction); if (cursor.isSameLocationWith(cursorTo)) { break; } board[cursor.getX()][cursor.getY()].toggleColor(); } }
private void reverseOpponents(Square target, Direction direction) { Square.Status color = target.getStatus(); Cursor cursor = target.createCursor(); while (true) { cursor.moveIn(direction); if (statusOn(cursor).isOpponent(color)) { continue; } else if (statusOn(cursor).isSameColor(color)) { doReverseOpponentsInBetweenExclusive(cursor.getOrigin(), cursor, direction); } break; } }