games.battleship.configurable_config¶

Configurable Battleship configuration using the generic player agent system.

This module provides configurable Battleship game configurations that replace hardcoded LLM settings with dynamic, configurable player agents.

Classes¶

ConfigurableBattleshipConfig

Configurable Battleship configuration with dynamic LLM selection.

Functions¶

create_battleship_config([player1_model, player2_model])

Create a configurable Battleship configuration with simple model specifications.

create_battleship_config_from_example(example_name, ...)

Create a configurable Battleship configuration from a predefined example.

create_battleship_config_from_player_configs(...)

Create a configurable Battleship configuration from detailed player.

create_budget_battleship_config(**kwargs)

Create a budget-friendly Battleship configuration.

create_experimental_battleship_config(**kwargs)

Create an experimental Battleship configuration with mixed providers.

create_naval_battleship_config(**kwargs)

Create a naval commander-style Battleship configuration with powerful models.

get_example_config(name)

Get a predefined example configuration by name.

list_example_configurations()

List all available example configurations.

Module Contents¶

class games.battleship.configurable_config.ConfigurableBattleshipConfig¶

Bases: haive.games.battleship.config.BattleshipAgentConfig

Configurable Battleship configuration with dynamic LLM selection.

This configuration allows users to specify different LLMs for different roles in the Battleship game, providing flexibility and avoiding hardcoded models.

player1_model¶

Model for player 1 (can be string or LLMConfig)

player2_model¶

Model for player 2 (can be string or LLMConfig)

player1_name¶

Name for player 1

player2_name¶

Name for player 2

example_config¶

Optional example configuration name

player_configs¶

Optional detailed player configurations

temperature¶

Temperature for LLM generation

enable_analysis¶

Whether to enable strategic analysis

visualize_board¶

Whether to visualize game boards

recursion_limit¶

Python recursion limit for game execution

model_post_init(__context)¶

Initialize engines after model creation.

Parameters:

__context (Any)

Return type:

None

games.battleship.configurable_config.create_battleship_config(player1_model='gpt-4o', player2_model='claude-3-5-sonnet-20240620', **kwargs)¶

Create a configurable Battleship configuration with simple model specifications.

Parameters:
  • player1_model (str) – Model for player 1 and analyzer

  • player2_model (str) – Model for player 2 and analyzer

  • **kwargs – Additional configuration parameters

Returns:

Configured Battleship game

Return type:

ConfigurableBattleshipConfig

Examples

>>> config = create_battleship_config("gpt-4o", "claude-3-opus", temperature=0.5)
>>> config = create_battleship_config(
...     "openai:gpt-4o",
...     "anthropic:claude-3-5-sonnet-20240620",
...     enable_analysis=True
... )
games.battleship.configurable_config.create_battleship_config_from_example(example_name, **kwargs)¶

Create a configurable Battleship configuration from a predefined example.

Parameters:
  • example_name (str) – Name of the example configuration

  • **kwargs – Additional configuration parameters to override

Returns:

Configured Battleship game

Return type:

ConfigurableBattleshipConfig

Available examples:
  • “gpt_vs_claude”: GPT vs Claude

  • “gpt_only”: GPT for both players

  • “claude_only”: Claude for both players

  • “budget”: Cost-effective models

  • “mixed”: Different provider per role

  • “naval_commanders”: High-powered models for strategic gameplay

Examples

>>> config = create_battleship_config_from_example("budget", enable_analysis=False)
>>> config = create_battleship_config_from_example("naval_commanders", visualize_board=True)
games.battleship.configurable_config.create_battleship_config_from_player_configs(player_configs, **kwargs)¶

Create a configurable Battleship configuration from detailed player. configurations.

Parameters:
Returns:

Configured Battleship game

Return type:

ConfigurableBattleshipConfig

Expected roles:
  • “player1_player”: Player 1 configuration

  • “player2_player”: Player 2 configuration

  • “player1_analyzer”: Player 1 analyzer configuration

  • “player2_analyzer”: Player 2 analyzer configuration

Examples

>>> player_configs = {
...     "player1_player": PlayerAgentConfig(
...         llm_config="gpt-4o",
...         temperature=0.7,
...         player_name="Strategic Admiral"
...     ),
...     "player2_player": PlayerAgentConfig(
...         llm_config="claude-3-opus",
...         temperature=0.3,
...         player_name="Tactical Captain"
...     ),
...     "player1_analyzer": PlayerAgentConfig(
...         llm_config="gpt-4o",
...         temperature=0.2,
...         player_name="Naval Strategist"
...     ),
...     "player2_analyzer": PlayerAgentConfig(
...         llm_config="claude-3-opus",
...         temperature=0.2,
...         player_name="Fleet Analyst"
...     ),
... }
>>> config = create_battleship_config_from_player_configs(player_configs)
games.battleship.configurable_config.create_budget_battleship_config(**kwargs)¶

Create a budget-friendly Battleship configuration.

Return type:

ConfigurableBattleshipConfig

games.battleship.configurable_config.create_experimental_battleship_config(**kwargs)¶

Create an experimental Battleship configuration with mixed providers.

Return type:

ConfigurableBattleshipConfig

games.battleship.configurable_config.create_naval_battleship_config(**kwargs)¶

Create a naval commander-style Battleship configuration with powerful models.

Return type:

ConfigurableBattleshipConfig

games.battleship.configurable_config.get_example_config(name)¶

Get a predefined example configuration by name.

Parameters:

name (str) – Name of the example configuration

Returns:

The example configuration

Return type:

ConfigurableBattleshipConfig

Raises:

ValueError – If the example name is not found

games.battleship.configurable_config.list_example_configurations()¶

List all available example configurations.

Returns:

Mapping of configuration names to descriptions

Return type:

Dict[str, str]