#!/usr/bin/perl use strict; use warnings; use Games::Crossword::Puzzle; my $filename = $ARGV[0]; my $html_out = $ARGV[1]; my $puzzle = Games::Crossword::Puzzle->from_file($filename); printf "TITLE : %s\n", $puzzle->title; printf "AUTHOR: %s\n", $puzzle->author; printf "(C) : %s\n", $puzzle->copyright || ''; for my $line (@{ $puzzle->{grid} }) { print join q{}, (map { defined $_->value ? $_->value : '.' } @$line); print " "; print join q{}, (map { defined $_->guess ? $_->guess : defined $_->value ? '-' : '.' } @$line); print "\n"; } if ($html_out) { die "bad filename: $html_out" unless $html_out =~ /\.html\z/; open my $output, ">", $html_out or die "couldn't open $html_out: $!"; print { $output } ""; for my $line (@{ $puzzle->{grid} }) { print { $output } ""; for my $square (@$line) { my $style = 'height:25px;width:25px'; if (not defined $square->value) { $style .= ';background-color:black'; } print { $output } qq{"; } print { $output } "\n"; } print { $output } "
}; print { $output } "$square->{number}" if $square->{number}; print { $output } $square->{value} || '-'; print { $output } "
"; print { $output } ""; }