Games::Go::Sgf2Dg::Dg2ASCII3pm
Convert games::go::sgf2dg::diagrams to ascii diagrams
Usage
use Games::Go::Sgf2Dg::Dg2ASCII
my $dg2ascii = B<Games::Go::Sgf2Dg::Dg2ASCII-E<gt>new> (options);my $ascii = $dg2ascii->convertDiagram($diagram);
Overview
A Games::Go::Sgf2Dg::Dg2ASCII object converts a Games::Go::Sgf2Dg::Diagram object into ASCII diagrams.
New
- my $dg2ascii =
Games::Go::Sgf2Dg::Dg2ASCII->new(?options?)
A new Games::Go::Sgf2Dg::Dg2ASCII takes the following options:
boardSizeX=> number
boardSizeY=> number-
Sets the size of the board.
Default: 19
doubleDigits=> true | false-
Numbers on stones are wrapped back to 1 after they reach 100. Numbers associated with comments and diagram titles are not affected.
Default: false
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,$yto whatever coordinates are used in the Games::Go::Sgf2Dg::Diagram object. The defaultdiaCoordsconverts 1-based$x,$yto 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 lettersSee also the
diaCoordsmethod below.
file=> 'filename' | $descriptor | \$string | \@array-
If
fileis defined, the ASCII 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 ASCII diagram is written into the file.
- descriptor
-
A file descriptor as returned by IO::File->new, or a \*FILE descriptor. The ASCII diagram is written into the file.
- reference to a string scalar
-
The ASCII diagram is concatenated to the end of the string.
- reference to an array
-
The ASCII diagram is split on "\n" and each line is pushed onto the array.
Default: undef
print=> sub { my ($dg2ascii, @lines) = @_; ... }-
A user defined subroutine to replace the default printing method. This callback is called from the
printmethod (below) with the reference to theDg2ASCIIobject and a list of lines that are part of the ASCII diagram lines.
Methods
- $dg2tex->
configure(option => value, ?...?) -
Change Dg2TeX options from values passed at
newtime.
- my $coord = $dg2mp->
diaCoords($x, $y) -
Provides access to the
diaCoordsoption (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));
- $dg2ascii->
print($text ? , ... ?) -
prints the input$textdirectly tofileas defined atnewtime. Whether or notfilewas defined,printaccumulates the$textfor later retrieval withconverted.
- my $ascii = $dg2ascii->
converted($replacement) -
Returns the entire ASCII diagram converted so far for the
Dg2ASCIIobject. If$replacementis defined, the accumulated ASCII is replaced by$replacement.
- $dg2ascii->
comment($comment ? , ... ?) -
Inserts the comment character (which is nothing for ASCII) in front of each line of each comment and
prints it tofile.
- my $dg2ascii->
convertDiagram($diagram) -
Converts a Games::Go::Sgf2Dg::Diagram into ASCII. If
filewas defined in thenewmethod, the ASCII is dumped into thefile. In any case, the ASCII is returned as a string scalar.Labels are restricted to one character (any characters after the first are discarded).
- my $ascii = $dg2ascii->
convertText($text) -
Converts
$textinto ASCII 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.
- $dg2ascii->
close -
prints any final text to the diagram (currently none) and closes the dg2ascii object. Also closesfileif appropriate.
Releases
Unchanged in 3 releases since Debian 11 (Bullseye).