diff --git a/DATA/Levels/Default/data.json b/DATA/Levels/Default/data.json new file mode 100644 index 0000000..e1cb036 --- /dev/null +++ b/DATA/Levels/Default/data.json @@ -0,0 +1 @@ +{"name": "Default", "start_point": {"x": 4, "y": 8}, "enemy_types": [[{"type": "little_spider", "sprite": "DATA/Sprites/Enemies/Tier 1/little-spider.png"}], [{"type": "wolf", "sprite": "DATA/Sprites/Enemies/Tier 2/wolf.png"}]], "enemy_spawns": [[{"x": 1, "y": 3, "tier": 1, "sleep": 600, "delay": 600}, {"x": 12, "y": 7, "tier": 1, "sleep": 9000, "delay": 9000}, {"x": 1, "y": 4, "tier": 1, "sleep": 800, "delay": 800}, {"x": 10, "y": 0, "tier": 1, "sleep": 600, "delay": 600}]], "size": [13, 10], "floor": [{"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 5, "y": 0}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 6, "y": 0}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 10, "y": 0}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 11, "y": 0}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 12, "y": 0}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 5, "y": 1}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 6, "y": 1}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 7, "y": 1}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 8, "y": 1}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 9, "y": 1}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 10, "y": 1}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 11, "y": 1}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 12, "y": 1}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 13, "y": 1}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 4, "y": 2}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 5, "y": 2}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 6, "y": 2}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 7, "y": 2}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 8, "y": 2}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 9, "y": 2}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 10, "y": 2}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 11, "y": 2}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 12, "y": 2}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 13, "y": 2}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 1, "y": 3}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 2, "y": 3}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 3, "y": 3}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 4, "y": 3}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 5, "y": 3}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 6, "y": 3}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 7, "y": 3}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 8, "y": 3}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 9, "y": 3}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 10, "y": 3}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 11, "y": 3}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 12, "y": 3}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 13, "y": 3}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 1, "y": 4}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 2, "y": 4}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 3, "y": 4}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 4, "y": 4}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 5, "y": 4}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 6, "y": 4}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 7, "y": 4}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 8, "y": 4}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 9, "y": 4}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 10, "y": 4}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 11, "y": 4}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 12, "y": 4}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 13, "y": 4}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 1, "y": 5}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 2, "y": 5}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 3, "y": 5}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 4, "y": 5}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 5, "y": 5}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 6, "y": 5}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 7, "y": 5}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 8, "y": 5}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 9, "y": 5}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 10, "y": 5}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 11, "y": 5}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 12, "y": 5}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 13, "y": 5}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 0, "y": 6}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 1, "y": 6}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 2, "y": 6}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 3, "y": 6}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 4, "y": 6}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 5, "y": 6}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 6, "y": 6}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 7, "y": 6}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 8, "y": 6}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 9, "y": 6}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 10, "y": 6}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 11, "y": 6}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 12, "y": 6}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 0, "y": 7}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 1, "y": 7}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 2, "y": 7}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 3, "y": 7}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 4, "y": 7}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 5, "y": 7}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 6, "y": 7}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 7, "y": 7}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 8, "y": 7}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 9, "y": 7}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 10, "y": 7}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 11, "y": 7}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 12, "y": 7}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 1, "y": 8}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 2, "y": 8}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 3, "y": 8}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 4, "y": 8}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 5, "y": 8}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 6, "y": 8}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 7, "y": 8}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 8, "y": 8}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 9, "y": 8}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 10, "y": 8}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 11, "y": 8}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 12, "y": 8}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 3, "y": 9}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 4, "y": 9}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 5, "y": 9}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 6, "y": 9}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 7, "y": 9}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 8, "y": 9}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 9, "y": 9}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 10, "y": 9}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 11, "y": 9}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 6, "y": 10}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 7, "y": 10}, {"sprite": "DATA/Sprites/Floor/floor_grey.png", "x": 8, "y": 10}]} \ No newline at end of file diff --git a/DATA/Levels/level_1/data.json b/DATA/Levels/level_1/data.json new file mode 100644 index 0000000..f1c7b75 --- /dev/null +++ b/DATA/Levels/level_1/data.json @@ -0,0 +1,108 @@ +{ + "name": "default", + "starting_position": { + "x": 6, + "y": 1 + }, + "enemies": [ + { + "type": "spider", + "sprite": "DATA/Sprites/Enemies/Tier 1/little-spider.png", + "x": 1, + "y": 6 + }, + { + "type": "spider", + "sprite": "DATA/Sprites/Enemies/Tier 1/little-spider.png", + "x": 1, + "y": 2 + }, + { + "type": "spider", + "sprite": "DATA/Sprites/Enemies/Tier 1/little-spider.png", + "x": 12, + "y": 3 + }, + { + "type": "spider", + "sprite": "DATA/Sprites/Enemies/Tier 1/little-spider.png", + "x": 10, + "y": 8 + } + ], + "floor": [ + { + "sprite": "DATA/Sprites/Floor/floor_grey.png", + "y": 0, + "x_start": 6, + "x_end": 8 + }, + { + "sprite": "DATA/Sprites/Floor/floor_grey.png", + "y": 1, + "x_start": 3, + "x_end": 11 + }, + { + "sprite": "DATA/Sprites/Floor/floor_grey.png", + "y": 1, + "x_start": 3, + "x_end": 11 + }, + { + "sprite": "DATA/Sprites/Floor/floor_grey.png", + "y": 2, + "x_start": 1, + "x_end": 12 + }, + { + "sprite": "DATA/Sprites/Floor/floor_grey.png", + "y": 3, + "x_start": 0, + "x_end": 12 + }, + { + "sprite": "DATA/Sprites/Floor/floor_grey.png", + "y": 4, + "x_start": 0, + "x_end": 12 + }, + { + "sprite": "DATA/Sprites/Floor/floor_grey.png", + "y": 5, + "x_start": 1, + "x_end": 13 + }, + { + "sprite": "DATA/Sprites/Floor/floor_grey.png", + "y": 6, + "x_start": 1, + "x_end": 13 + }, + { + "sprite": "DATA/Sprites/Floor/floor_grey.png", + "y": 7, + "x_start": 1, + "x_end": 13 + }, + { + "sprite": "DATA/Sprites/Floor/floor_grey.png", + "y": 8, + "x_start": 4, + "x_end": 11 + }, + { + "sprite": "DATA/Sprites/Floor/floor_grey.png", + "y": 9, + "x_start": 5, + "x_end": 8 + }, + { + "sprite": "DATA/Sprites/Floor/floor_grey.png", + "y": 10, + "x_start": 5, + "x_end": 6 + } + ] + +} \ No newline at end of file diff --git a/DATA/Sprites/Enemies/Tier 0/healthy_food.aseprite b/DATA/Sprites/Enemies/Tier 0/healthy_food.aseprite new file mode 100644 index 0000000..42d44fa Binary files /dev/null and b/DATA/Sprites/Enemies/Tier 0/healthy_food.aseprite differ diff --git a/DATA/Sprites/Enemies/Tier 0/healthy_food.png b/DATA/Sprites/Enemies/Tier 0/healthy_food.png new file mode 100644 index 0000000..e0c2b3a Binary files /dev/null and b/DATA/Sprites/Enemies/Tier 0/healthy_food.png differ diff --git a/DATA/Sprites/Enemies/Tier 1/little-spider.aseprite b/DATA/Sprites/Enemies/Tier 1/little-spider.aseprite new file mode 100644 index 0000000..c58316a Binary files /dev/null and b/DATA/Sprites/Enemies/Tier 1/little-spider.aseprite differ diff --git a/DATA/Sprites/Enemies/Tier 1/little-spider.png b/DATA/Sprites/Enemies/Tier 1/little-spider.png new file mode 100644 index 0000000..cfa5a30 Binary files /dev/null and b/DATA/Sprites/Enemies/Tier 1/little-spider.png differ diff --git a/DATA/Sprites/Floor/floor_grey.aseprite b/DATA/Sprites/Floor/floor_grey.aseprite new file mode 100644 index 0000000..48b6918 Binary files /dev/null and b/DATA/Sprites/Floor/floor_grey.aseprite differ diff --git a/DATA/Sprites/Floor/floor_grey.png b/DATA/Sprites/Floor/floor_grey.png new file mode 100644 index 0000000..f3131c0 Binary files /dev/null and b/DATA/Sprites/Floor/floor_grey.png differ diff --git a/DATA/Sprites/Floor/move_ghost.aseprite b/DATA/Sprites/Floor/move_ghost.aseprite new file mode 100644 index 0000000..b59773c Binary files /dev/null and b/DATA/Sprites/Floor/move_ghost.aseprite differ diff --git a/DATA/Sprites/Floor/move_ghost.png b/DATA/Sprites/Floor/move_ghost.png new file mode 100644 index 0000000..874d83b Binary files /dev/null and b/DATA/Sprites/Floor/move_ghost.png differ diff --git a/DATA/Sprites/Floor/simple_border.aseprite b/DATA/Sprites/Floor/simple_border.aseprite new file mode 100644 index 0000000..dd98e11 Binary files /dev/null and b/DATA/Sprites/Floor/simple_border.aseprite differ diff --git a/DATA/Sprites/Floor/simple_border.png b/DATA/Sprites/Floor/simple_border.png new file mode 100644 index 0000000..dc16d67 Binary files /dev/null and b/DATA/Sprites/Floor/simple_border.png differ diff --git a/DATA/Sprites/Snake/body-rotate.aseprite b/DATA/Sprites/Snake/body-rotate.aseprite new file mode 100644 index 0000000..cc4ef42 Binary files /dev/null and b/DATA/Sprites/Snake/body-rotate.aseprite differ diff --git a/DATA/Sprites/Snake/body-rotate.png b/DATA/Sprites/Snake/body-rotate.png new file mode 100644 index 0000000..06c3c36 Binary files /dev/null and b/DATA/Sprites/Snake/body-rotate.png differ diff --git a/DATA/Sprites/Snake/body.aseprite b/DATA/Sprites/Snake/body.aseprite new file mode 100644 index 0000000..b2d7e37 Binary files /dev/null and b/DATA/Sprites/Snake/body.aseprite differ diff --git a/DATA/Sprites/Snake/body.png b/DATA/Sprites/Snake/body.png new file mode 100644 index 0000000..0a66164 Binary files /dev/null and b/DATA/Sprites/Snake/body.png differ diff --git a/DATA/Sprites/Snake/head.aseprite b/DATA/Sprites/Snake/head.aseprite new file mode 100644 index 0000000..039b8f7 Binary files /dev/null and b/DATA/Sprites/Snake/head.aseprite differ diff --git a/DATA/Sprites/Snake/head.png b/DATA/Sprites/Snake/head.png new file mode 100644 index 0000000..370d62f Binary files /dev/null and b/DATA/Sprites/Snake/head.png differ diff --git a/DATA/Sprites/Snake/tail.aseprite b/DATA/Sprites/Snake/tail.aseprite new file mode 100644 index 0000000..f55b22a Binary files /dev/null and b/DATA/Sprites/Snake/tail.aseprite differ diff --git a/DATA/Sprites/Snake/tail.png b/DATA/Sprites/Snake/tail.png new file mode 100644 index 0000000..ec9f76b Binary files /dev/null and b/DATA/Sprites/Snake/tail.png differ diff --git a/__pycache__/fill_level.cpython-313.pyc b/__pycache__/fill_level.cpython-313.pyc new file mode 100644 index 0000000..44a1f1b Binary files /dev/null and b/__pycache__/fill_level.cpython-313.pyc differ diff --git a/fill_level.py b/fill_level.py new file mode 100644 index 0000000..1ea7cac --- /dev/null +++ b/fill_level.py @@ -0,0 +1,109 @@ +import json + + +class filler(): + def __init__(self, name = "None", floor_code = []): + self.name = name + self.floor_code = floor_code if floor_code else self.get_default_floor_code() + + def export2json(self): + filename = f"DATA/Levels/{self.name}/data.json" + with open(filename, 'w') as f: + json.dump(self.level_data, f) + + def fill_level(self, floor_code, name = "Default"): + self.level_data = { + "name": name, + "start_point": { + "x": 4, + "y": 8, + }, + "enemy_types": [ + [ + { + "type": "little_spider", + "sprite": "DATA/Sprites/Enemies/Tier 1/little-spider.png", + } + ], + [ + { + "type": "wolf", + "sprite": "DATA/Sprites/Enemies/Tier 2/wolf.png", + } + ], + ], + "enemy_spawns": [[ + { "x" : 1, "y" : 3, "tier": 1, "sleep": 600, "delay": 600}, + { "x" : 12, "y" : 7,"tier": 1, "sleep": 9000, "delay": 9000 }, + { "x" : 1, "y" : 4, "tier": 1,"sleep": 800, "delay": 800 }, + { "x" : 10, "y" : 0,"tier": 1, "sleep": 600, "delay": 600 } + ]], + + "size" : [], + "floor": [] + } + # Загрузка пола + + # floor_code - закодированная информация об уровне, представляет собой ас массив последовательностей 2х чисел: + # начало пола, конец пола + # Ключами являются координаты по y + + sprite = "DATA/Sprites/Floor/floor_grey.png" + y = 0 + x_max = 1 + y_max = 1 + + while y < 15: + if y in floor_code: + for x_len in floor_code[y]: + x = x_len["s"] + while x <= x_len["e"]: + if x > x_max: x_max = x + self.level_data["floor"].append({"sprite": sprite, "x": x, "y": y}) + x = x+1 + if y > y_max: y_max = y + y = y + 1 + else: + break + + self.level_data["size"] = [x_max, y_max] + + def get_default_floor_code(self): + return { + 0: [ + { "s" : 5, "e" : 6 }, + { "s" : 10, "e" : 12 }, + ], + 1:[ + { "s" : 5, "e" : 13 }, + ], + 2:[ + { "s" : 4, "e" : 13 }, + ], + 3:[ + { "s" : 1, "e" : 13 }, + ], + 4:[ + { "s" : 1, "e" : 13 }, + ], + 5:[ + { "s" : 1, "e" : 13 }, + ], + 6:[ + { "s" : 0, "e" : 12 }, + ], + 7:[ + { "s" : 0, "e" : 12 }, + ], + 8:[ + { "s" : 1, "e" : 12 }, + ], + 9:[ + { "s" : 3, "e" : 11 }, + ], + 10:[ + { "s" : 6, "e" : 8 }, + ] + } + + diff --git a/main.py b/main.py index 7d0fcf7..e69de29 100644 --- a/main.py +++ b/main.py @@ -1,9 +0,0 @@ -with open('data.txt', 'r') as file: - lines = file.readlines() - -transformed_lines = [line.upper() for line in lines] - -with open('output.txt', 'w') as output_file: - output_file.writelines(transformed_lines) - -print("Данные успешно преобразованы и записаны в файл output.txt") \ No newline at end of file