Compute a map hash based on a combination of map attributes.

        - Elevation
        - Map name
        - Player names, colors, and civilizations

def _map_hash(self):
        """Compute a map hash based on a combination of map attributes.

        - Elevation
        - Map name
        - Player names, colors, and civilizations
        """
        elevation_bytes = bytes([tile.elevation for tile in self._header.map_info.tile])
        map_name_bytes = self._map.name().encode()
        player_bytes = b''
        for _, attributes in self._players():
            player_bytes += (mgz.const.PLAYER_COLORS[attributes.player_color].encode() +
                             attributes.player_name.encode() +
                             mgz.const.CIVILIZATION_NAMES[attributes.civilization].encode())
        return hashlib.sha1(elevation_bytes + map_name_bytes + player_bytes).hexdigest()