Simple plateformer game playing
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
"""
|
||||
Represents a set of maps in the game. At initialization, it loads the desired maps.
|
||||
It provides a method to get a number of maps with the difficulty level as close as possible to the desired difficulty level.
|
||||
"""
|
||||
|
||||
from game.mapReader import MapReader
|
||||
|
||||
class MapSet:
|
||||
def __init__(self, mapReader: MapReader, mapNames: list):
|
||||
self.mapReader = mapReader
|
||||
self.maps = [self.mapReader.read_map(name) for name in mapNames]
|
||||
|
||||
def get_map(self, index: int):
|
||||
if index < 0 or index >= len(self.maps):
|
||||
raise IndexError("Map index out of range.")
|
||||
return self.maps[index]
|
||||
|
||||
def get_maps_by_difficulty(self, desired_difficulty: int, num_maps: int):
|
||||
"""
|
||||
Returns a list of maps with difficulty levels as close as possible to the desired difficulty level.
|
||||
If there are not enough maps, it returns all available maps.
|
||||
"""
|
||||
if len(self.maps) == 0:
|
||||
raise ValueError("No maps available in the MapSet.")
|
||||
sorted_maps = sorted(self.maps, key=lambda m: abs(m.difficulty - desired_difficulty))
|
||||
return sorted_maps[:num_maps]
|
||||
Reference in New Issue
Block a user