规范常数表达

This commit is contained in:
wszqkzqk 2022-07-29 17:02:45 +08:00
parent 2bca7f1d65
commit 4e055429b0
2 changed files with 13 additions and 12 deletions

View File

@ -10,27 +10,27 @@ class Map():
self.width = c.GRID_POOL_X_LEN
self.height = c.GRID_POOL_Y_LEN
self.gridHeightSize = c.GRID_POOL_Y_SIZE
self.map = [[(c.INIT_MAP_GRID(c.MAP_GRASS), c.INIT_MAP_GRID(c.MAP_WATER))[y in {2, 3}] for x in range(self.width)] for y in range(self.height)]
self.map = [[(self.initMapGrid(c.MAP_GRASS), self.initMapGrid(c.MAP_WATER))[y in {2, 3}] for x in range(self.width)] for y in range(self.height)]
elif self.background_type in c.ON_ROOF_BACKGROUNDS:
self.width = c.GRID_ROOF_X_LEN
self.height = c.GRID_ROOF_Y_LEN
self.gridHeightSize = c.GRID_ROOF_Y_SIZE
self.map = [[c.INIT_MAP_GRID(c.MAP_TILE) for x in range(self.width)] for y in range(self.height)]
self.map = [[self.initMapGrid(c.MAP_TILE) for x in range(self.width)] for y in range(self.height)]
elif self.background_type == c.BACKGROUND_SINGLE:
self.width = c.GRID_X_LEN
self.height = c.GRID_Y_LEN
self.gridHeightSize = c.GRID_Y_SIZE
self.map = [[(c.INIT_MAP_GRID(c.MAP_UNAVAILABLE), c.INIT_MAP_GRID(c.MAP_GRASS))[y == 2] for x in range(self.width)] for y in range(self.height)]
self.map = [[(self.initMapGrid(c.MAP_UNAVAILABLE), self.initMapGrid(c.MAP_GRASS))[y == 2] for x in range(self.width)] for y in range(self.height)]
elif self.background_type == c.BACKGROUND_TRIPLE:
self.width = c.GRID_X_LEN
self.height = c.GRID_Y_LEN
self.gridHeightSize = c.GRID_Y_SIZE
self.map = [[(c.INIT_MAP_GRID(c.MAP_UNAVAILABLE), c.INIT_MAP_GRID(c.MAP_GRASS))[y in {1, 2, 3}] for x in range(self.width)] for y in range(self.height)]
self.map = [[(self.initMapGrid(c.MAP_UNAVAILABLE), self.initMapGrid(c.MAP_GRASS))[y in {1, 2, 3}] for x in range(self.width)] for y in range(self.height)]
else:
self.width = c.GRID_X_LEN
self.height = c.GRID_Y_LEN
self.gridHeightSize = c.GRID_Y_SIZE
self.map = [[c.INIT_MAP_GRID(c.MAP_GRASS) for x in range(self.width)] for y in range(self.height)]
self.map = [[self.initMapGrid(c.MAP_GRASS) for x in range(self.width)] for y in range(self.height)]
def isValid(self, map_x, map_y):
if (map_x < 0 or map_x >= self.width or
@ -38,6 +38,12 @@ class Map():
return False
return True
# 地图单元格状态
# 注意是可变对象,不能直接引用
# 由于同一格显然不可能种两个相同的植物,所以用集合
def initMapGrid(PLOT_TYPE):
return {c.MAP_PLANT:set(), c.MAP_SLEEP:False, c.MAP_PLOT_TYPE:PLOT_TYPE}
# 判断位置是否可用
# 暂时没有写紫卡植物的判断方法
# 由于紫卡植物需要移除以前的植物,所以可用另外定义一个函数

View File

@ -182,12 +182,6 @@ MAP_GRASS = "grass"
MAP_WATER = "water"
MAP_TILE = "tile" # 指屋顶上的瓦片
MAP_UNAVAILABLE = "unavailable" # 指完全不能种植物的地方,包括无草皮的荒地和坚果保龄球等红线右侧
# 地图单元格状态
# 注意是可变对象,不能直接引用
# 不喜欢用深拷贝,直接改用函数表示,需要时直接调用该函数生成即可
# 由于同一格显然不可能种两个相同的植物,所以用集合
def INIT_MAP_GRID(PLOT_TYPE):
return {MAP_PLANT:set(), MAP_SLEEP:False, MAP_PLOT_TYPE:PLOT_TYPE}
# 地图相关像素数据
BACKGROUND_OFFSET_X = 220
@ -646,6 +640,7 @@ for _part1 in (DUCKY_TUBE_ZOMBIE, CONEHEAD_DUCKY_TUBE_ZOMBIE, BUCKETHEAD_DUCKY_T
for _part2 in ("", "Attack", "Swim"):
ZOMBIE_RECT[f"{_part1}{_part2}"] = {"x":55, "width":105}
# 音效
def _getSound(filename):
return pg.mixer.Sound(os.path.join(os.path.dirname(os.path.dirname(__file__)) ,"resources", "sound", filename))
@ -696,7 +691,7 @@ SOUNDS = ( # 程序交互等
SOUND_WIN := _getSound("win.ogg"),
SOUND_SCREAM := _getSound("scream.ogg"),
SOUND_CANNOT_CHOOSE_WARNING := _getSound("cannotChooseWarning.ogg"),
SOUND_FINAL_FANFARE := _getSound("finalfanfare.ogg")
SOUND_FINAL_FANFARE := _getSound("finalfanfare.ogg"),
)
# 记录本地存储文件初始值