@Override
	public final void rightRotation() {
		int rowLength = WIDTH_FIELDS;
		int colLength = HEIGHT_FIELDS;
		IField[][] tmpFieldMatrix = new IField[rowLength][colLength];

		for (int row = 0; row <= rowLength - 1; row++) {
			for (int column = 0; column <= colLength - 1; column++) {
				tmpFieldMatrix[row][column] = this.fieldsMatrix[2 - column][row];
			}
		}

		for (int row = 0; row <= rowLength - 1; row++) {
			for (int column = 0; column <= colLength - 1; column++) {
				this.fieldsMatrix[row][column] = tmpFieldMatrix[row][column];
			}
		}

		for (int i = 0; i < (rowLength * colLength); i++) {
			IField field = fieldsMatrix[i / WIDTH_FIELDS][i % WIDTH_FIELDS];
			field.rotateRight();
			fieldsMatrix[i / WIDTH_FIELDS][i % WIDTH_FIELDS] = field;
		}

		rotation = rotation.rotateRight();
	}