Module: FEEN::Dumper

Defined in:
lib/feen/dumper.rb,
lib/feen/dumper/turn.rb,
lib/feen/dumper/square.rb,
lib/feen/dumper/in_hand.rb

Overview

The dumper module.

Defined Under Namespace

Modules: InHand, Turn Classes: Square

Class Method Summary collapse

Class Method Details

.call(in_hand:, shape:, side_id:, square:) ⇒ String

Dump position params into a FEEN string.

Examples:

Dump a classic Tsume Shogi problem

call(
  "in_hand": %w[S r r b g g g g s n n n n p p p p p p p p p p p p p p p p p],
  "shape": [9, 9],
  "side_id": 0,
  "square": {
     3 => "s",
     4 => "k",
     5 => "s",
    22 => "+P",
    43 => "+B"
  }
)
# => "3,s,k,s,3/9/4,+P,4/9/7,+B,1/9/9/9/9 0 S,b,g,g,g,g,n,n,n,n,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,p,r,r,s"

Parameters:

  • in_hand (Array)

    The list of pieces in hand.

  • shape (Array)

    The shape of the board.

  • side_id (Integer)

    The identifier of the player who must play.

  • square (Hash)

    The index of each piece on the board.

Returns:

  • (String)

    The FEEN string representing the position.


33
34
35
36
37
38
39
# File 'lib/feen/dumper.rb', line 33

def self.call(in_hand:, shape:, side_id:, square:)
  [
    Square.new(shape, square).to_s,
    Turn.dump(side_id),
    InHand.dump(in_hand)
  ].join(" ")
end