.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Games::Go::Sgf2Dg::Dg2ASCII 3pm" .TH Games::Go::Sgf2Dg::Dg2ASCII 3pm "2019-10-27" "perl v5.30.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Games::Go::Sgf2Dg::Dg2ASCII \- convert Games::Go::Sgf2Dg::Diagrams to ASCII diagrams .SH "SYNOPSIS" .IX Header "SYNOPSIS" use Games::Go::Sgf2Dg::Dg2ASCII .PP .Vb 2 \& my $dg2ascii = Bnew> (options); \& my $ascii = $dg2ascii\->convertDiagram($diagram); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" A Games::Go::Sgf2Dg::Dg2ASCII object converts a Games::Go::Sgf2Dg::Diagram object into \s-1ASCII\s0 diagrams. .SH "NEW" .IX Header "NEW" .ie n .IP "my $dg2ascii = \fBGames::Go::Sgf2Dg::Dg2ASCII\->new\fR (?options?)" 4 .el .IP "my \f(CW$dg2ascii\fR = \fBGames::Go::Sgf2Dg::Dg2ASCII\->new\fR (?options?)" 4 .IX Item "my $dg2ascii = Games::Go::Sgf2Dg::Dg2ASCII->new (?options?)" .PP A \fBnew\fR Games::Go::Sgf2Dg::Dg2ASCII takes the following options: .IP "\fBboardSizeX\fR => number" 8 .IX Item "boardSizeX => number" .PD 0 .IP "\fBboardSizeY\fR => number" 8 .IX Item "boardSizeY => number" .PD Sets the size of the board. .Sp Default: 19 .IP "\fBdoubleDigits\fR => true | false" 8 .IX Item "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. .Sp Default: false .IP "\fBcoords\fR => true | false" 8 .IX Item "coords => true | false" Generates a coordinate grid. .Sp Default: false .IP "\fBtopLine\fR => number (Default: 1)" 8 .IX Item "topLine => number (Default: 1)" .PD 0 .IP "\fBbottomLine\fR => number (Default: 19)" 8 .IX Item "bottomLine => number (Default: 19)" .IP "\fBleftLine\fR => number (Default: 1)" 8 .IX Item "leftLine => number (Default: 1)" .IP "\fBrightLine\fR => number (Default: 19)" 8 .IX Item "rightLine => number (Default: 19)" .PD 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. .ie n .IP "\fBdiaCoords\fR => sub { # convert $x, $y to Games::Go::Sgf2Dg::Diagram coordinates }" 8 .el .IP "\fBdiaCoords\fR => sub { # convert \f(CW$x\fR, \f(CW$y\fR to Games::Go::Sgf2Dg::Diagram coordinates }" 8 .IX Item "diaCoords => sub { # convert $x, $y to Games::Go::Sgf2Dg::Diagram coordinates }" This callback defines a subroutine to convert coordinates from \f(CW$x\fR, \&\f(CW$y\fR to whatever coordinates are used in the Games::Go::Sgf2Dg::Diagram object. The default \fBdiaCoords\fR converts 1\-based \f(CW$x\fR, \f(CW$y\fR to the same coordinates used in \s-1SGF\s0 format files. You only need to define this if you're using a different coordinate system in the Diagram. .Sp Default: sub { my ($x, \f(CW$y\fR) = \f(CW@_\fR; \f(CW$x\fR = chr($x \- 1 + ord('a')); # convert 1 to 'a', etc \f(CW$y\fR = chr($y \- 1 + ord('a')); return(\*(L"$x$y\*(R"); }, # concatenate two letters .Sp See also the \fBdiaCoords\fR method below. .ie n .IP "\fBfile\fR => 'filename' | $descriptor | \e$string | \e@array" 8 .el .IP "\fBfile\fR => 'filename' | \f(CW$descriptor\fR | \e$string | \e@array" 8 .IX Item "file => 'filename' | $descriptor | $string | @array" If \fBfile\fR is defined, the \s-1ASCII\s0 diagram is dumped into the target. The target can be any of: .RS 8 .IP "filename" 4 .IX Item "filename" The filename will be opened using IO::File\->new. The filename should include the '>' or '>>' operator as described in 'perldoc IO::File'. The \s-1ASCII\s0 diagram is written into the file. .IP "descriptor" 4 .IX Item "descriptor" A file descriptor as returned by IO::File\->new, or a \e*FILE descriptor. The \s-1ASCII\s0 diagram is written into the file. .IP "reference to a string scalar" 4 .IX Item "reference to a string scalar" The \s-1ASCII\s0 diagram is concatenated to the end of the string. .IP "reference to an array" 4 .IX Item "reference to an array" The \s-1ASCII\s0 diagram is split on \*(L"\en\*(R" and each line is pushed onto the array. .RE .RS 8 .Sp Default: undef .RE .ie n .IP "\fBprint\fR => sub { my ($dg2ascii, @lines) = @_; ... }" 8 .el .IP "\fBprint\fR => sub { my ($dg2ascii, \f(CW@lines\fR) = \f(CW@_\fR; ... }" 8 .IX Item "print => sub { my ($dg2ascii, @lines) = @_; ... }" A user defined subroutine to replace the default printing method. This callback is called from the \fBprint\fR method (below) with the reference to the \fBDg2ASCII\fR object and a list of lines that are part of the \s-1ASCII\s0 diagram lines. .SH "METHODS" .IX Header "METHODS" .ie n .IP "$dg2tex\->\fBconfigure\fR (option => value, ?...?)" 4 .el .IP "\f(CW$dg2tex\fR\->\fBconfigure\fR (option => value, ?...?)" 4 .IX Item "$dg2tex->configure (option => value, ?...?)" Change Dg2TeX options from values passed at \fBnew\fR time. .ie n .IP "my $coord = $dg2mp\->\fBdiaCoords\fR ($x, $y)" 4 .el .IP "my \f(CW$coord\fR = \f(CW$dg2mp\fR\->\fBdiaCoords\fR ($x, \f(CW$y\fR)" 4 .IX Item "my $coord = $dg2mp->diaCoords ($x, $y)" Provides access to the \fBdiaCoords\fR option (see above). Returns coordinates in the converter's coordinate system for board coordinates ($x, \&\f(CW$y\fR). For example, to get a specific intersection structure: .Sp .Vb 1 \& my $int = $diagram\->get($dg2mp\->diaCoords(3, 4)); .Ve .ie n .IP "$dg2ascii\->\fBprint\fR ($text ? , ... ?)" 4 .el .IP "\f(CW$dg2ascii\fR\->\fBprint\fR ($text ? , ... ?)" 4 .IX Item "$dg2ascii->print ($text ? , ... ?)" \&\fBprint\fRs the input \f(CW$text\fR directly to \fBfile\fR as defined at \fBnew\fR time. Whether or not \fBfile\fR was defined, \fBprint\fR accumulates the \&\f(CW$text\fR for later retrieval with \fBconverted\fR. .ie n .IP "my $ascii = $dg2ascii\->\fBconverted\fR ($replacement)" 4 .el .IP "my \f(CW$ascii\fR = \f(CW$dg2ascii\fR\->\fBconverted\fR ($replacement)" 4 .IX Item "my $ascii = $dg2ascii->converted ($replacement)" Returns the entire \s-1ASCII\s0 diagram converted so far for the \&\fBDg2ASCII\fR object. If \f(CW$replacement\fR is defined, the accumulated \&\s-1ASCII\s0 is replaced by \f(CW$replacement\fR. .ie n .IP "$dg2ascii\->\fBcomment\fR ($comment ? , ... ?)" 4 .el .IP "\f(CW$dg2ascii\fR\->\fBcomment\fR ($comment ? , ... ?)" 4 .IX Item "$dg2ascii->comment ($comment ? , ... ?)" Inserts the comment character (which is nothing for \s-1ASCII\s0) in front of each line of each comment and \fBprint\fRs it to \fBfile\fR. .ie n .IP "my $dg2ascii\->\fBconvertDiagram\fR ($diagram)" 4 .el .IP "my \f(CW$dg2ascii\fR\->\fBconvertDiagram\fR ($diagram)" 4 .IX Item "my $dg2ascii->convertDiagram ($diagram)" Converts a \fIGames::Go::Sgf2Dg::Diagram\fR into \s-1ASCII.\s0 If \fBfile\fR was defined in the \fBnew\fR method, the \s-1ASCII\s0 is dumped into the \fBfile\fR. In any case, the \s-1ASCII\s0 is returned as a string scalar. .Sp Labels are restricted to one character (any characters after the first are discarded). .ie n .IP "my $ascii = $dg2ascii\->\fBconvertText\fR ($text)" 4 .el .IP "my \f(CW$ascii\fR = \f(CW$dg2ascii\fR\->\fBconvertText\fR ($text)" 4 .IX Item "my $ascii = $dg2ascii->convertText ($text)" Converts \f(CW$text\fR into \s-1ASCII\s0 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. .Sp Returns the converted text. .ie n .IP "$dg2ascii\->\fBclose\fR" 4 .el .IP "\f(CW$dg2ascii\fR\->\fBclose\fR" 4 .IX Item "$dg2ascii->close" \&\fBprint\fRs any final text to the diagram (currently none) and closes the dg2ascii object. Also closes \fBfile\fR if appropriate. .SH "SEE ALSO" .IX Header "SEE ALSO" .IP "sgf2dg(1)" 4 .IX Item "sgf2dg(1)" Script to convert \s-1SGF\s0 format files to Go diagrams .SH "BUGS" .IX Header "BUGS" Seems unlikely.