public static TilePosition Rotate(this TilePosition position, int rotation) { rotation %= 4; for (int i = 0; i < rotation; i++) { position = position.Rotate(); } return(position); }