haive.games.single_player.flow_free.models ========================================== .. py:module:: haive.games.single_player.flow_free.models .. autoapi-nested-parse:: Models for Flow Free gameplay and analysis. This module defines the core data models for the Flow Free puzzle game, including move representation and strategic analysis. Classes ------- .. autoapisummary:: haive.games.single_player.flow_free.models.FlowColor haive.games.single_player.flow_free.models.FlowFreeAnalysis haive.games.single_player.flow_free.models.FlowFreeMove haive.games.single_player.flow_free.models.PipeDirection haive.games.single_player.flow_free.models.Position Module Contents --------------- .. py:class:: FlowColor Bases: :py:obj:`str`, :py:obj:`enum.Enum` Color options for Flow Free pipes. Initialize self. See help(type(self)) for accurate signature. .. py:class:: FlowFreeAnalysis(/, **data) Bases: :py:obj:`pydantic.BaseModel` Strategic analysis of a Flow Free board position. .. attribute:: completed_flows List of flow IDs that have been completed. .. attribute:: incomplete_flows List of flow IDs that need completion. .. attribute:: critical_flows Flows that are most constrained and should be prioritized. .. attribute:: blocked_flows Flows that might be blocked or have limited space. .. attribute:: recommended_move The suggested next move based on analysis. .. attribute:: reasoning Detailed explanation of the analysis. Create a new model by parsing and validating input data from keyword arguments. Raises [`ValidationError`][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model. `self` is explicitly positional-only to allow `self` as a field name. .. py:property:: completion_percentage :type: float Calculate the percentage of flows completed. .. py:class:: FlowFreeMove(/, **data) Bases: :py:obj:`pydantic.BaseModel` Represents a single move in Flow Free. .. attribute:: flow_id Identifier for the flow being extended. .. attribute:: position Position to place the next pipe segment. Create a new model by parsing and validating input data from keyword arguments. Raises [`ValidationError`][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model. `self` is explicitly positional-only to allow `self` as a field name. .. py:class:: PipeDirection Bases: :py:obj:`str`, :py:obj:`enum.Enum` Direction of a pipe segment. Initialize self. See help(type(self)) for accurate signature. .. py:class:: Position(/, **data) Bases: :py:obj:`pydantic.BaseModel` A position on the Flow Free board. .. attribute:: row Row index (0-based). .. attribute:: col Column index (0-based). Create a new model by parsing and validating input data from keyword arguments. Raises [`ValidationError`][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model. `self` is explicitly positional-only to allow `self` as a field name.