Provided by: sgf2dg_4.252-1_amd64 bug

NAME

       Games::Go::Sgf2Dg::Dg2SL - Perl extension to convert Games::Go::Sgf2Dg::Diagrams to Sensei's Library
       format

SYNOPSIS

       use Games::Go::Sgf2Dg::Dg2SL

        my $dg2sl = B<Games::Go::Sgf2Dg::Dg2SL-E<gt>new> (options);
        my $sl = $dg2sl->convertDiagram($diagram);

DESCRIPTION

       A Games::Go::Sgf2Dg::Dg2SL object converts a Games::Go::Sgf2Dg::Diagram object into Sensei's Library
       diagrams (see http://senseis.xmp.net/).

       Sensei's Library diagrams only support move numbers from 1-10, so make sure you call sgf2dg with
       arguments that specify a maximum of 10 moves per diagram and starting each diagram with move number 1.
       Example:

         sgf2dg -converter SL -m 10 -n foo.sgf

       Sensei's Library also doesn't support labelled stones.

       An initial setup diagram is printed if the initial board isn't empty and doesn't have a handicap setup -
       i.e., only black stones, all of which are on hoshi points.

       Diagrams' extents are limited to the stones actually played, plus a margin.  That is, if there are only
       stones in one corner, only that corner is printed, not the whole diagram. This is useful for analyses of
       local positions, but if the first ten moves of a real game are all in one corner - however unlikely that
       may be -, it would produce undesirable results.

NEW

       my $dg2sl = Games::Go::Sgf2Dg::Dg2SL->new (?options?)

       A new Games::Go::Sgf2Dg::Dg2SL takes the following options:

       boardSize => number
               Sets the size of the board.

               Default: 19

       coords => true | false
               Generates a coordinate grid.

               Default: false

       topLine     => number (Default: 1)
       bottomLine  => number (Default: 19)
       leftLine    => number (Default: 1)
       rightLine   => number (Default: 19)
               The  edges  of  the board that should be displayed.  Any portion of the board that extends beyond
               these numbers is not included in the output.

       diaCoords => sub { # convert $x, $y to Games::Go::Sgf2Dg::Diagram coordinates }
               This callback defines a subroutine to convert coordinates from $x, $y to whatever coordinates are
               used in the Games::Go::Sgf2Dg::Diagram object.  The default diaCoords converts 1-based $x, $y  to
               the  same  coordinates  used in SGF format files.  You only need to define this if you're using a
               different coordinate system in the Diagram.

               Default:
                   sub { my ($x, $y) = @_;
                         $x = chr($x - 1 + ord('a')); # convert 1 to 'a', etc
                         $y = chr($y - 1 + ord('a'));
                         return "$x$y"; },           # concatenate two letters

               See also the diaCoords method below.

       file => 'filename' | $descriptor | \$string | \@array
               If file is defined, the Sensei's Library diagram is dumped into the target.  The  target  can  be
               any of:

               filename
                   The  filename will be opened using IO::File->new. The filename should include the '>' or '>>'
                   operator as described in 'perldoc IO::File'. The Sensei's Library diagram is written into the
                   file.

               descriptor
                   A file descriptor as returned by IO::File->new, or a \*FILE descriptor. The Sensei's  Library
                   diagram is written into the file.

               reference to a string scalar
                   The Sensei's Library diagram is concatenated to the end of the string.

               reference to an array
                   The Sensei's Library diagram is split on "\n" and each line is pushed onto the array.

               Default: undef

       print => sub { my ($dg2sl, @lines) = @_; ... }
               A  user  defined subroutine to replace the default printing method.  This callback is called from
               the print method (below) with the reference to the Dg2SL object and a list of lines that are part
               of the Sensei's Library diagram lines.

METHODS

       $dg2sl->configure (option => value, ?...?)
           Change Dg2SL options from values passed at new time.

       my $coord = $dg2mp->diaCoords ($x, $y)
           Provides access to the  diaCoords  option  (see  above).   Returns  coordinates  in  the  converter's
           coordinate  system  for  board  coordinates  ($x,  $y).   For example, to get a specific intersection
           structure:

               my $int = $diagram->get($dg2mp->diaCoords(3, 4));

       $dg2sl->print ($text ? , ... ?)
           prints the input $text directly to file as defined at new time.  Whether or  not  file  was  defined,
           print accumulates the $text for later retrieval with converted.

       my $sl = $dg2sl->converted ($replacement)
           Returns the entire Sensei's Library diagram converted so far for the Dg2SL object. If $replacement is
           defined, the accumulated Sensei's Library is replaced by $replacement.

       $dg2sl->comment ($comment ? , ... ?)
           Inserts  the  comment character (which is nothing for Sensei's Library) in front of each line of each
           comment and prints it to file.

       my $dg2sl->convertDiagram ($diagram)
           Converts a Games::Go::Sgf2Dg::Diagram into Sensei's Library. If file was defined in the  new  method,
           the  Sensei's  Library  is  dumped into the file.  In any case, the Sensei's Library is returned as a
           string scalar.

       my $sl = $dg2sl->convertText ($text)
           Converts $text into Sensei's Library code - gee, that's not very hard.  In fact, this  method  simply
           returns  whatever  is  passed  to  it.   This  is  really  just  a  place-holder for more complicated
           converters.

           Returns the converted text.

       $title = $dg2sl->convertGameProps (\%sgfHash)
           convertGameProps takes a reference to a hash of properties as extracted from an SGF file.  Each  hash
           key  is  a  property  ID  and  the  hash  value  is  a  reference  to  an  array  of property values:
           $hash->{propertyId}->[values].  The following SGF properties are recognized:

           GN GameName
           EV EVent
           RO ROund
           DT DaTe
           PW PlayerWhite
           WR WhiteRank
           PB PlayerBlack
           BR BlackRank
           PC PlaCe
           KM KoMi
           RU RUles
           TM TiMe
           OT OverTime (byo-yomi)
           RE REsult
           AN ANnotator
           SO Source
           US USer (entered by)
           CP CoPyright
           GC GameComment

           Both long and short property names are recognized, and all unrecognized properties are  ignored  with
           no warnings.  Note that these properties are all intended as game-level notations.

       $dg2sl->close
           prints  any final text to the diagram (currently none) and closes the dg2sl object.  Also closes file
           if appropriate.

SEE ALSO

       sgf2dg(1)
           Script to convert SGF format files to Go diagrams

BUGS

       Seems likely.

AUTHOR

       Marcel Gruenauer, <marcel@cpan.org<gt>

COPYRIGHT AND LICENSE

       Copyright (C) 2007 by Marcel Gruenauer.

       This library is free software; you can redistribute it and/or modify it under  the  same  terms  as  Perl
       itself, either Perl version 5.8.5 or, at your option, any later version of Perl 5 you may have available.

perl v5.30.0                                       2019-10-27                      Games::Go::Sgf2Dg::Dg2SL(3pm)