move snake builder into __init__ of snakes file and use it into server class

This commit is contained in:
2026-04-03 20:11:46 +02:00
parent 0a3db6ba57
commit eace1872d7
3 changed files with 34 additions and 20 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
from server.Files import read_file
from server.GameBoard import GameBoard
from server.SnakeBuilder import SnakeBuilder
from snakes import SnakeBuilder
from quart_common.web.logger import await_log
from quart_common.web.logger import build_logger
from typing import cast
-19
View File
@@ -1,19 +0,0 @@
class SnakeBuilder:
SNAKE_VERSIONS = {
"TemplateSnake": "1.0.0",
"DummSnake": "1.0.0",
"LogicSnake": "1.1.0",
"MasterSnake": "1.2.0",
"BetterMasterSnake": "1.3.0",
"BestBattleSnake": "2.5.0",
}
@classmethod
def build(self, selected_snake:str):
snake_module = __import__(f"snakes.{selected_snake}", fromlist=[selected_snake])
snake_class = getattr(snake_module, selected_snake)
return snake_class()
@classmethod
def get_version(self, selected_snake:str) -> str | None:
return self.SNAKE_VERSIONS.get(selected_snake)
+33
View File
@@ -0,0 +1,33 @@
import importlib
SNAKE_REGISTRY = {
"TemplateSnake": "1.0.0",
"DummSnake": "1.0.0",
"LogicSnake": "1.1.0",
"MasterSnake": "1.2.0",
"BetterMasterSnake": "1.3.0",
"BestBattleSnake": "2.5.0",
}
def build_snake(selected_snake: str):
if selected_snake not in SNAKE_REGISTRY:
raise ValueError(f"Unknown snake: {selected_snake}")
snake_module = importlib.import_module(f"snakes.{selected_snake}")
snake_class = getattr(snake_module, selected_snake)
return snake_class()
def get_snake_version(selected_snake: str) -> str | None:
version = SNAKE_REGISTRY.get(selected_snake)
if version is None:
return None
return str(version)
class SnakeBuilder:
@classmethod
def build(self, selected_snake: str):
return build_snake(selected_snake)
@classmethod
def get_version(self, selected_snake: str) -> str | None:
return get_snake_version(selected_snake)