Class: Sashite::Ggn::Ruleset::Source
- Inherits:
-
Object
- Object
- Sashite::Ggn::Ruleset::Source
- Includes:
- MoveValidator
- Defined in:
- lib/sashite/ggn/ruleset/source.rb,
lib/sashite/ggn/ruleset/source/destination.rb,
lib/sashite/ggn/ruleset/source/destination/engine.rb,
lib/sashite/ggn/ruleset/source/destination/engine/transition.rb
Overview
Represents the possible source positions for a specific piece type.
A Source instance contains all the starting positions from which a piece can move on the board. Since GGN focuses exclusively on board-to-board transformations, all source positions are regular board squares.
Defined Under Namespace
Classes: Destination
Constant Summary
Constants included from MoveValidator
Instance Method Summary collapse
-
#from(origin) ⇒ Destination
Retrieves possible destinations from a specific source position.
-
#initialize(data, actor:) ⇒ Source
constructor
Creates a new Source instance from movement data.
Constructor Details
#initialize(data, actor:) ⇒ Source
Creates a new Source instance from movement data.
50 51 52 53 54 55 56 57 |
# File 'lib/sashite/ggn/ruleset/source.rb', line 50 def initialize(data, actor:) raise ::ArgumentError, "Expected Hash, got #{data.class}" unless data.is_a?(::Hash) @data = data @actor = actor freeze end |
Instance Method Details
#from(origin) ⇒ Destination
Retrieves possible destinations from a specific source position.
92 93 94 95 |
# File 'lib/sashite/ggn/ruleset/source.rb', line 92 def from(origin) data = @data.fetch(origin) Destination.new(data, actor: @actor, origin: origin) end |