reuse the code from quart_common.web.env to import env_bool and env_int into all classes that are useing this functions
This commit is contained in:
@@ -4,6 +4,7 @@ from typing import Any, cast
|
||||
from time import perf_counter
|
||||
import os
|
||||
|
||||
from quart_common.web.env import env_int
|
||||
from server.dataset.RLBootstrapDataset import RLBootstrapDataset
|
||||
|
||||
from snakes.TemplateSnake import TemplateSnake
|
||||
@@ -43,9 +44,9 @@ class BestBattleSnake(TemplateSnake):
|
||||
self.duel_style = self._get_duel_style()
|
||||
self.timeout_buffer_ms = self._get_timeout_buffer_ms()
|
||||
self.rl_bootstrap = RLBootstrapDataset()
|
||||
self.future_planning_depth = max(1, min(4, self._env_int("BATTLE_FUTURE_PLANNING_DEPTH", default=2)))
|
||||
self.future_planning_branch = max(1, min(3, self._env_int("BATTLE_FUTURE_PLANNING_BRANCH", default=2)))
|
||||
self.future_planning_min_time_ms = max(25, self._env_int("BATTLE_FUTURE_PLANNING_MIN_MS", default=70))
|
||||
self.future_planning_depth = max(1, min(4, env_int("BATTLE_FUTURE_PLANNING_DEPTH", default=2)))
|
||||
self.future_planning_branch = max(1, min(3, env_int("BATTLE_FUTURE_PLANNING_BRANCH", default=2)))
|
||||
self.future_planning_min_time_ms = max(25, env_int("BATTLE_FUTURE_PLANNING_MIN_MS", default=70))
|
||||
|
||||
def _get_duel_style(self) -> str:
|
||||
"""Resolve duel tuning style from `BATTLE_SNAKE_DUEL_STYLE` or `DUEL_STYLE`."""
|
||||
@@ -86,15 +87,6 @@ class BestBattleSnake(TemplateSnake):
|
||||
except ValueError:
|
||||
return 120
|
||||
|
||||
def _env_int(self, name:str, default:int) -> int:
|
||||
value = os.getenv(name)
|
||||
if value is None:
|
||||
return default
|
||||
try:
|
||||
return int(value)
|
||||
except ValueError:
|
||||
return default
|
||||
|
||||
def choose_move(self, game_data:GameBoard) -> str:
|
||||
"""Pick the next move from a Battlesnake move request.
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@ from typing import Any, cast
|
||||
from time import perf_counter
|
||||
import heapq, os
|
||||
|
||||
from quart_common.web.env import env_int
|
||||
|
||||
from snakes.TemplateSnake import TemplateSnake
|
||||
from server.GameBoard import GameBoard
|
||||
from server.dataset.RLBootstrapDataset import RLBootstrapDataset
|
||||
@@ -92,9 +94,9 @@ class UltimateBattleSnake(TemplateSnake):
|
||||
self._bfs_cache: dict[tuple, int] = {}
|
||||
self._bfs_cache_turn: int = -1
|
||||
# Config
|
||||
self._planning_depth = max(1, min(4, self._env_int("BATTLE_FUTURE_PLANNING_DEPTH", 2)))
|
||||
self._planning_branch = max(1, min(3, self._env_int("BATTLE_FUTURE_PLANNING_BRANCH", 2)))
|
||||
self._planning_min_ms = max(25, self._env_int("BATTLE_FUTURE_PLANNING_MIN_MS", 70))
|
||||
self._planning_depth = max(1, min(4, env_int("BATTLE_FUTURE_PLANNING_DEPTH", 2)))
|
||||
self._planning_branch = max(1, min(3, env_int("BATTLE_FUTURE_PLANNING_BRANCH", 2)))
|
||||
self._planning_min_ms = max(25, env_int("BATTLE_FUTURE_PLANNING_MIN_MS", 70))
|
||||
# RL bootstrap dataset recorder
|
||||
self.rl_bootstrap = RLBootstrapDataset()
|
||||
|
||||
@@ -106,12 +108,6 @@ class UltimateBattleSnake(TemplateSnake):
|
||||
except ValueError:
|
||||
return 130
|
||||
|
||||
def _env_int(self, name: str, default: int) -> int:
|
||||
try:
|
||||
return int(os.getenv(name, str(default)))
|
||||
except ValueError:
|
||||
return default
|
||||
|
||||
def _get_duel_style(self) -> str:
|
||||
raw = os.getenv("BATTLE_SNAKE_DUEL_STYLE", os.getenv("DUEL_STYLE", "balanced"))
|
||||
style = raw.strip().lower()
|
||||
@@ -138,7 +134,7 @@ class UltimateBattleSnake(TemplateSnake):
|
||||
self.game_board = game_data
|
||||
self.calculations = []
|
||||
|
||||
timeout_ms = game_data.get_timeout() if hasattr(game_data, "get_timeout") else 500
|
||||
timeout_ms = (game_data.get_timeout() if hasattr(game_data, "get_timeout") else 500)
|
||||
deadline = perf_counter() + (max(50, timeout_ms - self._get_timeout_buffer_ms()) / 1000.0)
|
||||
|
||||
game_id = getattr(game_data, "id", None)
|
||||
|
||||
Reference in New Issue
Block a user